Vba: come creare una finestra di messaggio con risposte sì/no
È possibile utilizzare la seguente sintassi in VBA per creare una finestra di messaggio in cui un utente possa selezionare Sì o No:
Sub MsgBoxYesNo()
'ask user if they want to multiply two cells
UserResponse = MsgBox(" Do you want to multiply cells A1 and B1? ", vbYesNo)
'perform action based on user response
If UserResponse = vbYes Then
Range(" C1 ") = Range(" A1 ") * Range(" B1 ")
Else
MsgBox “ No Multiplication was Performed ”
End If
End Sub
Questa particolare macro crea una finestra di messaggio che chiede all’utente se desidera moltiplicare le celle A1 e B1.
Se l’utente fa clic su “Sì”, entrambe le celle vengono moltiplicate e il risultato viene visualizzato nella cella C1.
Se l’utente fa clic su “No”, viene visualizzata una nuova finestra di messaggio che informa che non è stata eseguita alcuna moltiplicazione.
Tieni presente che l’istruzione vbYesNo è ciò che inserisce i pulsanti “Sì” e “No” su cui l’utente può fare clic.
Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.
Esempio: creare una finestra di messaggio con risposte Sì/No
Supponiamo di avere i seguenti due valori nelle celle A1 e B1 del nostro foglio Excel:
Diciamo che vogliamo creare una macro che mostri una finestra di messaggio all’utente e chieda se desidera o meno moltiplicare i valori nelle celle A1 e B1.
Per fare ciò possiamo creare la seguente macro:
Sub MsgBoxYesNo()
'ask user if they want to multiply two cells
UserResponse = MsgBox(" Do you want to multiply cells A1 and B1? ", vbYesNo)
'perform action based on user response
If UserResponse = vbYes Then
Range(" C1 ") = Range(" A1 ") * Range(" B1 ")
Else
MsgBox “ No Multiplication was Performed ”
End If
End Sub
Quando eseguiamo questa macro, viene visualizzata la seguente finestra di messaggio:
Se facciamo clic su Sì , la macro moltiplicherà i valori nelle celle A1 e B2 e visualizzerà il risultato nella cella C1:
Tuttavia, se facciamo clic su No , verrà visualizzata una nuova finestra di messaggio:
La finestra di messaggio ci informa che non è stata eseguita alcuna moltiplicazione poiché abbiamo fatto clic su No nella finestra di messaggio precedente.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come aggiungere una nuova riga alla finestra di messaggio
VBA: come aggiungere nuovi fogli
VBA: come bloccare i riquadri