Sommario:
- È possibile utilizzare la funzione MsgBox in due modi:
- Se visualizzi una finestra di messaggio che ha più di un semplice pulsante OK, probabilmente vorrai sapere quale pulsante fa clic sull'utente. Sei fortunato. La funzione MsgBox può restituire un valore che rappresenta il pulsante su cui viene fatto clic. È possibile assegnare il risultato della funzione MsgBox a una variabile.
Video: Corso VBA Excel ITA - 29 - Interazioni con l'utente 2025
Probabilmente hai familiarità con la funzione MsgBox VBA. La funzione MsgBox, che accetta gli argomenti mostrati di seguito, è utile per visualizzare le informazioni e ottenere semplici input da parte dell'utente. È in grado di ottenere input da parte dell'utente perché è una funzione. Una funzione, come probabilmente sai, restituisce un valore. Nel caso della funzione MsgBox, utilizza una finestra di dialogo per ottenere il valore restituito. Continua a leggere per vedere esattamente come funziona.
Argomento | Che cosa influenza |
---|---|
Prompt | Il testo Excel viene visualizzato nella finestra del messaggio |
Pulsanti | Un numero che specifica quali pulsanti (insieme all'icona)
vengono visualizzati nella finestra di messaggio (facoltativo) |
Titolo | Il testo che appare nella barra del titolo della casella del messaggio
(opzionale) |
Ecco una versione semplificata della sintassi della funzione MsgBox: <
Visualizzazione di una finestra di messaggio semplice
È possibile utilizzare la funzione MsgBox in due modi:
Per mostrare semplicemente un messaggio all'utente:
-
In questo caso, non ti interessa il risultato restituito dalla funzione. Per ottenere una risposta da parte dell'utente:
-
In questo caso, si cura del risultato restituito dalla funzione. Il risultato dipende dal pulsante che l'utente fa clic.
Sub MsgBoxDemo () MsgBox "Fare clic su OK per iniziare la stampa. "Fogli (" Risultati "). PrintOut End Sub
Guarda qui sotto per vedere come appare questa finestra di messaggio. In questo caso, la stampa inizia quando l'utente fa clic su OK. Ti accorgi che non c'è modo di cancellare la stampa? Continua a leggere per scoprire come risolvere il problema.
Una semplice finestra di messaggio.
Se visualizzi una finestra di messaggio che ha più di un semplice pulsante OK, probabilmente vorrai sapere quale pulsante fa clic sull'utente. Sei fortunato. La funzione MsgBox può restituire un valore che rappresenta il pulsante su cui viene fatto clic. È possibile assegnare il risultato della funzione MsgBox a una variabile.
Nel codice seguente, vengono utilizzate alcune costanti incorporate che facilitano il lavoro con i valori restituiti da MsgBox:
Sub GetAnswer () Dim Ans As Long Ans = MsgBox ("Inizia a stampare?", VbYesNo) Seleziona Caso Casis vbYes ActiveSheet. Caso PrintOut vbNo MsgBox "Stampa annullata" End Select End Sub
Costante
Valore | Che cosa | vbOKOnly |
---|---|---|
0 | Visualizza solo il pulsante OK. | vbOKCancel |
1 | Visualizza i pulsanti OK e Annulla. | vbAbortRetryIgnore |
2 | Visualizza i pulsanti Annulla, Riprova e Ignora. | vbYesNoCancel |
3 | Visualizza i pulsanti Sì, No e Annulla. | vbYesNo |
4 | Visualizza i pulsanti Sì e No. | vbRetryCancel |
5 | Visualizza i pulsanti Riprova e Annulla. | vbCritical |
16 | Visualizza l'icona Messaggio critico. | vbQuestion |
32 | Visualizza l'icona Query di avviso. | vbExclamation |
48 | Visualizza l'icona Messaggio di avviso. | vbInformation |
64 | Visualizza l'icona del messaggio di informazioni. | vbDefaultButton1 |
0 | Il primo pulsante è predefinito. | vbDefaultButton2 |
256 | Il secondo pulsante è predefinito. | vbDefaultButton3 |
512 | Terzo pulsante predefinito. | vbDefaultButton4 |
768 | Il quarto pulsante è predefinito. | Scopri come appare. Quando si esegue questa procedura, alla variabile Ans viene assegnato un valore di vbYes o vbNo, a seconda del pulsante che l'utente fa clic. L'istruzione Select Case utilizza il valore Ans per determinare quale azione deve eseguire il codice. |
Una semplice finestra di messaggio, con due pulsanti.
Sub GetAnswer2 () Se MsgBox ("Avvia stampa?", VbYesNo) = vbYes Then '… [codice se Sì è cliccato] … Else '… [codice se Sì non è cliccato] … End If End Sub
