Coloro che utilizzano programmi di fogli di calcolo da un po’ di tempo, potrebbero ricordare il vecchio comando {?}~ disponibile in Lotus 1-2-3. Questo comando consentiva di mettere in pausa la macro mentre l’utente inseriva i dati nel foglio di calcolo.
Excel non include la stessa funzionalità, ma consente di richiedere input all’utente. I due metodi principali sono questi:
- Funzione MsgBox. Questa funzione visualizza una finestra di dialogo e una serie di pulsanti. Quando l’utente fa clic su un pulsante, viene restituito un valore intero che indica il pulsante su cui è stato fatto clic. Il tuo programma può quindi agire in base al valore restituito (per ulteriori informazioni sulla funzione MsgBox, vedi questo suggerimento).
- Funzione InputBox. Questa funzione visualizza una finestra di dialogo e consente all’utente di digitare una risposta. Qualunque cosa digitata dall’utente viene restituita come stringa alla macro. (per ulteriori informazioni sulla funzione InputBox, vedi questo suggerimento).
In base all’input dell’utente, è possibile modificare ciò che fa la macro nel modo che desideri. L’unico inconveniente delle funzioni è che restituiscono solo un singolo dato distinto. In altre parole, non sono progettate per consentire all’utente di inserire un intervallo di celle e quindi continuare l’elaborazione. Ad esempio, se volessi chiedere all’utente di fornire cinque valori destinati a cinque celle, dovresti presentare un InputBox cinque volte, depositando le risposte dell’utente nelle celle desiderate una dopo l’altra.
Ecco un tipico esempio dell’uso di InputBox e MsgBox: questa macro chiede di inserire una o più lettere di colonna e fornisce il numero di colonna corrispondente:
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)