Sì No Message Box (Msgbox) - Esempi di codice VBA

Questo tutorial illustrerà come utilizzare la funzione VBA MsgBox per visualizzare le caselle di messaggio agli utenti (inclusa la casella di messaggio SìNo). Potrebbe interessarti anche il nostro articolo sugli InputBox.

Funzione MsgBox VBA

In VBA, è facile visualizzare un semplice MsgBox:

1 MsgBox "Questa è una finestra di messaggio"

Tuttavia, puoi fare molto di più che visualizzare una semplice finestra di messaggio OK. Esaminiamo rapidamente un esempio complicato prima di immergerci nello specifico…

VBA SìNo Casella di messaggio

Di seguito creeremo una finestra di messaggio con:

  • Un titolo "Titolo casella di messaggio" e prompt "Testo"
  • Un'icona punto interrogativo
  • Sì / No opzioni invece di un semplice "OK"
  • Pulsante predefinito = "No"
123 Dim risposta come numero interorisposta = MsgBox("Testo", vbQuestion + vbYesNo + vbDefaultButton2, "Titolo casella messaggio")

La messagebox restituirà vbYes o vbNo a seconda della scelta dell'utente. È quindi possibile eseguire diverse azioni in base alla scelta:

12345 Se risposta = vbSì AlloraMsgBox "Sì"AltroMsgBox "No"Finisci se

Nella prossima sezione ti mostreremo tutte le opzioni a tua disposizione durante la creazione di finestre di messaggio. Quindi ti presenteremo la sintassi della funzione MsgBox e infine esamineremo altri esempi di finestre di messaggio.

Opzioni casella messaggio VBA

Dai un'occhiata all'immagine qui sotto. Qui vedrai (quasi) tutte le opzioni a tua disposizione durante la creazione di finestre di messaggio. Prendi nota delle icone e dei diversi pulsanti.

Questo è uno screenshot del "MessageBox Builder" dal nostro componente aggiuntivo VBA Premium: AutoMacro. Il MessageBox Builder ti consente di progettare rapidamente la tua messagebox desiderata e di inserire il codice nel tuo modulo di codice. Contiene anche molti altri costruttori di codice, un'ampia libreria di codici VBA e un assortimento di strumenti di codifica. È un must per qualsiasi sviluppatore VBA.

Sintassi della funzione MsgBox

MsgBox( prompt [, bottoni ] [, titolo ] [, file di aiuto, contesto ] )

richiesta (richiesto) - Questo è il testo principale della casella del messaggio.

pulsanti - Scegli quali pulsanti visualizzare. Se omesso, "OKonly". Qui puoi anche specificare quale icona mostrare e il pulsante predefinito.

titolo - Il titolo nella parte superiore della finestra del messaggio. Se omesso, viene visualizzato il nome dell'applicazione corrente (es. Microsoft Excel).

file di aiuto - Specificare il file della guida a cui è possibile accedere quando l'utente fa clic sul pulsante "Aiuto". Se specificato, devi anche aggiungere il contesto (sotto)

contesto - Espressione numerica che rappresenta il numero di contesto della Guida assegnato all'argomento della Guida appropriato.

Probabilmente puoi ignorare il file di aiuto e gli argomenti di contesto. Non li ho mai visti usati.

Personalizza il titolo e il messaggio della casella di messaggio

La funzione MsgBox consente di personalizzare il titolo e i messaggi di richiesta in questo modo:

1 Msgbox "Richiesta",,"Titolo"

Un altro esempio:

123 Sub MsgBoxPromptTitle()MsgBox "Passaggio 1 completato. Fare clic su OK per eseguire il passaggio 2.",, "Passaggio 1 di 5"Fine sottotitolo

Importante! Devi ricordarti di circondare il tuo testo con citazioni.

Interruzioni di riga nella casella dei messaggi

Puoi anche aggiungere interruzioni di riga ai prompt della finestra di messaggio con "vbNewLine".

123 Sub MsgBoxPromptTitle_NewLine()MsgBox "Passo 1 completato." & vbNewLine & "Fai clic su OK per eseguire il passaggio 2.", , "Passaggio 1 di 5"Fine sottotitolo

Nota che usiamo il simbolo & per unire il testo. Puoi saperne di più sull'uso di & con il testo e altre opzioni per l'inserimento di interruzioni di riga nel nostro articolo sull'unione di testo.

Icone MsgBox

VBA ti dà la possibilità di aggiungere una delle quattro icone predefinite alle tue finestre di messaggio:

Icona Costante Icona
vbInformazioni
vbCritical
vbDomanda
vbExclamation

La costante Icon dovrebbe essere posizionata all'interno dell'argomento del pulsante:

123 Sub MsgBoxQuestionIcon()MsgBox "Esempio di domanda", vbQuestionFine sottotitolo

Questo genererà la finestra di messaggio "OK" predefinita con l'icona Domanda:

Nota come quando digiti, l'editor VBA ti mostrerà le opzioni a tua disposizione:

Questo è utile perché non è necessario ricordare la sintassi esatta o i nomi di icone o pulsanti.

Ora dimostreremo ogni icona della finestra di messaggio:

Icone MsgBox - Informazioni

123 Sub MsgBoxInformationIcon()MsgBox "Esempio di informazioni", vbInformationFine sottotitolo

Icone MsgBox - Critiche

123 Sub MsgBoxCriticalIcon()MsgBox "Esempio critico", vbCriticalFine sottotitolo

Icone MsgBox - Domanda

123 Sub MsgBoxQuestionIcon()MsgBox "Esempio di domanda", vbQuestionFine sottotitolo

Icone MsgBox - Punto esclamativo

123 Sub MsgBoxExclamationIcon()MsgBox "Esempio di esclamazione", vbExclamationFine sottotitolo

Di seguito parleremo della generazione di finestre di messaggio con diversi layout di pulsanti. Se scegli un tipo di finestra di messaggio diverso, dovrai aggiungere il tipo di icona dopo i pulsanti utilizzando un "+":

123 Sub MsgBoxQuestionIcon()MsgBox "Vuoi continuare?", vbOKCancel + vbQuestionFine sottotitolo

Variabili MsgBox

Finora abbiamo lavorato principalmente con la finestra di messaggio predefinita "OK". La finestra del messaggio OK ha solo un'opzione: premendo 'OK' si consente al codice di continuare. Tuttavia, puoi anche specificare altri raggruppamenti di pulsanti: OK / Annulla, Sì / No, ecc.

In tal caso vorrai eseguire azioni diverse in base a quale pulsante viene premuto. Diamo un'occhiata a un esempio.

Ecco la finestra di messaggio che genereremo:

Questo è l'intero codice (lo analizzeremo in seguito):

123456789101112 Sub MsgBoxVariable()Dim risposta come numero interorisposta = MsgBox("Vuoi continuare?", vbQuestion + vbYesNo)Se risposta = vbSì AlloraMsgBox "Sì"AltroMsgBox "No"Finisci seFine sottotitolo

Per prima cosa assegniamo l'output del messagebox a una variabile intera.

123 Dim risposta come numero interorisposta = MsgBox("Vuoi continuare?", vbQuestion + vbYesNo)

Quindi usiamo un If-Else per determinare cosa fare in base a quale pulsante viene premuto:

12345 Se risposta = vbSì AlloraMsgBox "Sì"AltroMsgBox "No"Finisci se

La funzione MsgBox restituisce un valore intero (tra 1-7) quindi definiamo la variabile come tipo intero. Tuttavia, invece di fare riferimento al numero intero, puoi fare riferimento a una costante (es. vbOK, vbCancel, ecc.). Guarda questa tabella per vedere tutte le opzioni:

Pulsante Costante Valore
ok vbOK 1
Annulla vbAnnulla 2
Interrompi vbInterrompi 3
Riprova vbRiprova 4
Ignorare vbIgnora 5
vbSì 6
No vbNo 7

Ora dimostreremo ogni raggruppamento di pulsanti:

Casella messaggio OK - vbOKOnly

Questa è la casella di messaggio VBA standard.

123456 Sub MsgBox_OKOnly()Dim risposta come numero interorisposta = MsgBox("OKOnly Esempio", vbOKOnly)Fine sottotitolo

OK Annulla casella messaggio - vbOKCancel

123456789101112 Sub MsgBox_OKCancel()Dim risposta come numero interorisposta = MsgBox("OK Annulla Esempio", vbOKCancel)Se risposta = vbOK AlloraMsgBox "OK"AltroMsgBox "Annulla"Finisci seFine sottotitolo

Sì No Casella messaggi - vbSìNo

123456789101112 Sub MsgBox_SìNo()Dim risposta come numero interorisposta = MsgBox("Sì No Esempio", vbSìNo)Se risposta = vbSì AlloraMsgBox "Sì"AltroMsgBox "No"Finisci seFine sottotitolo

Sì No Annulla casella messaggio - vbSìNoCancel

1234567891011121314 Sub MsgBox_YesNoCancel()Dim risposta come numero interorisposta = MsgBox("Sì No Annulla Esempio", vbYesNoCancel)Se risposta = vbSì AlloraMsgBox "Sì"ElseIf risposta = vbNo AlloraMsgBox "No"AltroMsgBox "Annulla"Finisci seFine sottotitolo

Abort Retry Ignore Message Box - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore()Dim risposta come numero interorisposta = MsgBox("Abort Retry Ignore Example", vbAbortRetryIgnore)Se risposta = vbAbort AlloraMsgBox "Interrompi"ElseIf risposta = vbRiprova alloraMsgBox "Riprova"AltroMsgBox "Ignora"Finisci seFine sottotitolo

Riprova Annulla casella messaggio - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel()Dim risposta come numero interorisposta = MsgBox("Riprova Annulla Esempio", vbRetryCancel)Se risposta = vbRiprova alloraMsgBox "Riprova"AltroMsgBox "Annulla"Finisci seFine sottotitolo

Esempi di MessageBox VBA

Conferma della finestra di messaggio prima di eseguire la macro

Questo codice visualizzerà una casella di messaggio Sì No prima di chiamare una macro. Se si fa clic su Sì, viene chiamata la macro, se si fa clic su No, la macro non viene eseguita.

12345678 Sub Msgbox_BeforeRunning()Dim risposta come numero interorisposta = MsgBox("Vuoi eseguire Macro1?", vbQuestion + vbYesNo)Se risposta = vbSì Allora chiama Macro1Fine sottotitolo

Sì / No Message Box - Exit Sub

Qui confermeremo con l'utente se continuare a eseguire una macro. Se si clicca No il codice uscirà dal sub, altrimenti la procedura continuerà.

12345678910 Sub Msgbox_BeforeRunning()Dim risposta come numero interorisposta = MsgBox("Vuoi continuare?", vbQuestion + vbYesNo)Se risposta = vbNo Allora esci da Sub"Un po' di codice"Fine sottotitolo

Casella di messaggio VBA in Access VBA

Tutti gli esempi precedenti funzionano esattamente allo stesso modo in Access VBA come in Excel VBA.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave