Se è necessario ottenere input da un utente sotto il controllo di una macro, un metodo che è possibile utilizzare è la funzione InputBox. Questa funzione visualizza una finestra di dialogo e consente all’utente di digitare una risposta. Il risultato è una stringa, restituita alla macro, che è quindi possibile elaborare e utilizzare.
La sintassi per la funzione InputBox è la seguente:
sResponse = InputBox(sPrompt, sTitle, sDefault)
Ci sono tre parametri che puoi usare con InputBox (ciascuno di essi è una stringa), sebbene solo il primo sia assolutamente obbligatorio. In questa sintassi, sPrompt è il testo che si desidera venga visualizzato come prompt all’utente, sTitle è il testo da visualizzare nella barra del titolo della finestra di dialogo e sDefault è la stringa di testo predefinita offerta all’utente nella finestra di dialogo. L’utente può modificare o accettare la stringa predefinita, come desidera.
Ad esempio, è possibile utilizzare le seguenti righe di codice per visualizzare una finestra di dialogo e chiedere all’utente il proprio nome:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Una volta completato questo codice, la variabile sUserName contiene qualunque cosa abbia immesso l’utente. Puoi quindi, nella tua macro, utilizzare quell’input in qualsiasi altro modo ritieni opportuno.
Ad esempio potresti inserire quanto digitato dall’utente in una cella del foglio di lavoro:
Range("B3").Value = sUserName
Questo esempio deposita il valore di sUserName nella cella B3.
La funzione InputBox è ottima per acquisire un dato alla volta, poiché puoi pubblicare solo una singola “domanda” utilizzandola. Se hai bisogno di ottenere una serie di input dell’utente da utilizzare nella tua macro, dovrai fare affidamento su un Form utente o acquisire l’input direttamente da un foglio di lavoro.
Per ulteriori approfondimenti puoi consultare anche la scheda tecnica della funzione descritta in questo articolo.