Come creare funzioni di casella di messaggio in excel?
La prima cosa che ho imparato su VBA è stata come utilizzare una finestra di messaggio (“funzione msgbox”). È come una semplice finestra popup nella finestra di Excel per visualizzare un messaggio specifico. Se ci pensi, puoi usarlo in due modi.
- Consegnare un messaggio all’utente.
- Ottieni una risposta semplice dall’utente.
La maggior parte dei programmatori VBA lo usa nei codici macro per renderli più interattivi e se non lo conosci, scommetto che dopo aver letto questo articolo te ne innamorerai.
Suggerimento dell’esperto: se sei un principiante VBA, potrebbe essere una buona idea saperne di più sulla finestra di messaggio VBA.
Quindi, oggi in questo articolo vorrei condividere con voi tutti i dettagli sull’utilizzo di una finestra di messaggio in Excel e alcuni esempi reali.
…Iniziamo.
Sintassi
=MSGBOX(prompt, [pulsanti], [titolo], [file di aiuto, contesto])
- prompt Espressione stringa utilizzata per la visualizzazione come messaggio. La lunghezza massima dei caratteri è 1024, che dipende dalla larghezza dei caratteri.
- [pulsanti] È possibile utilizzare questo argomento per specificare i pulsanti, lo stile dell’icona, l’identità del pulsante e la modalità della finestra di messaggio.
- [titolo] Puoi utilizzare questo argomento per specificare il testo del titolo per la tua finestra di messaggio.
- [helpfile] Questo argomento ti aiuterà a specificare un file di aiuto per l’utente. L’utente può accedere a questo file della guida utilizzando il pulsante della guida. Se si specifica un file della guida, è obbligatorio specificare un numero di contesto.
- [contesto] Espressione numerica utilizzata per assegnare un argomento della guida dal menu della guida.
Nota: nell’elenco precedente, gli argomenti sopra indicati tra parentesi quadre sono facoltativi, puoi saltarli per specificarli.
Come personalizzare una finestra di messaggio e utilizzare pulsanti diversi
Puoi personalizzare facilmente una finestra di messaggio VBA con tutte le opzioni disponibili. Diamo un’occhiata a queste opzioni.
#1. vbOKOnly
Questo ti dà un semplice pulsante OK. L’utente può cliccarci sopra dopo aver letto il messaggio per chiuderlo. È inoltre possibile utilizzare una macro da eseguire dopo aver fatto clic sul pulsante OK.
Sotto OKSolo()
MsgBox Prompt := “Questo è un MsgBox”, _
Pulsanti:=vbOKOnly, _
Titolo: = “Cassetta postale”
Sottotitolo finale
#2. vbOKAnnulla
Questa costante ti dà un pulsante OK e annulla. L’utente ha ora due opzioni: premere OK per continuare o annullare per uscire.
Sotto OKAnnulla()
MsgBox prompt:= »Stai bene? », _
Pulsanti:=vbOKAnnulla, _
Titolo: = “Cassetta postale”
Sottotitolo finale
#3. vbAbortRetryIgnore
Ciò consente di visualizzare tre pulsanti per Informazioni, Riprova e Ignora. L’utente può interrompere l’operazione, riprovare o ignorarla.
Sotto OKAnnulla()
MsgBox prompt:= »Stai bene? », _
Pulsanti:=vbOKAnnulla, _
Titolo: = “Cassetta postale”
Sottotitolo finale
#4. vbSìNoAnnulla
Questa costante visualizza tre pulsanti per Sì, No e Annulla. L’utente può Sì per accettare e continuare, No per rifiutare o annullare per chiudere la finestra di messaggio.
Sotto SìNoAnnulla()
MsgBox Prompt := “Ora hai tre pulsanti”, _
Pulsanti:=vbYesNoCancel, _
Titolo: = “Cassetta postale”
Sottotitolo finale
#5. vbSìNo
Questa costante visualizza due pulsanti per Sì e No. L’utente può fare clic su Sì per accettare e continuare o su No per rifiutare.
Sotto SìNo()
MsgBox Prompt := “Ora hai due pulsanti”, _
Pulsanti:=vbSìNo, _
Titolo: = “Cassetta postale”
Sottotitolo finale
#6. vbRiprovaAnnulla
Ora mostra due pulsanti, riprova e annulla. Puoi usarlo per chiedere all’utente di ritentare l’operazione o annullarla.
Sub RetryCancel()MsgBox Prompt:=”Riprova”, _Buttons:=vbRetryCancel, _Title:=”MsgBox”End Sub
#7. vbReview
Questa costante visualizza un’icona nella finestra del messaggio, indicando che il messaggio è critico.
Subcritico()
MsgBox Prompt:= “Questo è fondamentale”, _
Pulsanti:=vbCritical, _
Titolo: = “Cassetta postale”
Sottotitolo finale
#8. vbDomanda
Questa costante può essere utilizzata quando si pone una domanda all’utente.
Sottodomanda()
MsgBox Prompt := »Cosa fare adesso? », _
Pulsanti:=vbDomanda, _
Titolo: = “Cassetta postale”
Sottotitolo finale
#9. vbEsclamazione
Questa costante visualizzerà un’icona esclamativa con il messaggio.
SottoEsclamazione()
MsgBox Prompt := »Cosa fare adesso? », _
Pulsanti:=vbEsclamativo, _
Titolo: = “Cassetta postale”
Sottotitolo finale
#dieci. vbInformazioni
Verrà visualizzata un’icona che indica che il messaggio è informativo.
Sub Information()MsgBox Prompt:=”Cosa fare adesso?”, _Buttons:=vbInformation, _Title:=”MsgBox”End Sub
#11. vbDefaultButton1
Utilizza questa costante per specificare il primo pulsante nella casella dei messaggi come pulsante predefinito.
Sub DefaultButton1()MsgBox Prompt:=”Il pulsante1 è evidenziato?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton1, _Title:=”MsgBox”End Sub
#12. vbDefaultButton2
Utilizza questa costante per specificare il secondo pulsante nella finestra di messaggio come pulsante predefinito.
Sub DefaultButton2()MsgBox Prompt:=”Il pulsante2 è evidenziato?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton2, _Title:=”MsgBox”End Sub
#13. vbDefaultButton3
Usa questa costante per specificare il terzo pulsante nella tua msgbox come pulsante predefinito.
Sub DefaultButton3()MsgBox Prompt:=”Il pulsante3 è evidenziato?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton3, _Title:=”MsgBox”End Sub
#14. vbDefaultButton4
Usa questa costante per specificare il quarto pulsante nella tua msgbox come pulsante predefinito.
Sub DefaultButton4()MsgBox Prompt:=”Il pulsante4 è evidenziato?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton4, _Title:=”MsgBox”End Sub
#15. vbApplicationModal
Questa costante sospenderà l’applicazione (Excel), l’utente dovrà rispondere al msgbox per utilizzare l’applicazione.
Sotto OKSolo()
MsgBox Prompt := “Questo è un MsgBox”, _
Pulsanti:=vbOKOnly, _
Titolo: = “Cassetta postale”, _
Sottotitolo finale
#16. vbSystemModal
Questa costante sospenderà tutte le applicazioni nel sistema operativo, l’utente dovrà prima rispondere alla finestra di messaggio.
Sub ApplicationModal()MsgBox Prompt := »Questa è la modale dell’applicazione», _Buttons :=vbOK + vbApplicationModal, _Title := »MsgBox »End Sub
#17. vbMsgBoxHelpButton
Utilizza questa costante per aggiungere un pulsante di aiuto alla tua casella di posta. È possibile aggiungere un file della guida e un numero di contesto per utilizzare il pulsante della guida.
Sub HelpButton()MsgBox Prompt:=”Usa pulsante Aiuto”, _Buttons:=vbOK + vbMsgBoxHelpButton, _Title:=”MsgBox”, _HelpFile:=”C:UsersPuneet GogiaDesktopsamplehelp.chm”, _Context:=101End Sub
Una volta che l’utente fa clic sul pulsante della guida, viene visualizzato un menu di guida.
#18. vbMsgBoxSetForeground
Questa costante ti aiuterà a rendere la finestra della tua casella di messaggio una finestra in primo piano.
Sub SetForeground()MsgBox Prompt:=”Questo MsgBox è in primo piano”, _Buttons:=vbOK + vbMsgBoxSetForeground, _Title:=”MsgBox”End Sub
#19. vbMsgBoxRight
Il testo verrà allineato a destra utilizzando questa costante.
Sotto MsgBoxRight()
MsgBox Prompt := “Il testo è a destra”, _
Pulsanti:=vbOK + vbMsgBoxRight, _
Titolo: = “Cassetta postale”
Sottotitolo finale
#20. vbMsgBoxRtlLettura
Usando questa costante, la finestra del messaggio si sposterà a destra. Questa costante è progettata principalmente per i sistemi ebraico e arabo.
Sotto MsgBoxRtlRead()
MsgBox Prompt := “Questa casella è ribaltata”, _
Pulsanti:=vbOK + vbMsgBoxRtlLeggi, _
Titolo: = “Cassetta postale”
Sottotitolo finale
Valori restituiti
Ogni volta che un utente risponde alla finestra di messaggio facendo clic su uno dei pulsanti, viene generato un numero. Ciò ti aiuterà a identificare il pulsante su cui l’utente ha fatto clic.
Costante | Valore | Descrizione |
---|---|---|
vbOK | 1 | VA BENE |
vbAnnulla | 2 | Annulla |
vbAbort | 3 | Aborto |
vbRiprova | 4 | Ricomincia |
vbSalta | 5 | Ignorare |
vbSì | 6 | SÌ |
vbNo | 7 | NO |
Esempi reali di utilizzo della funzione casella di messaggio VBA in Excel
Qui ho elencato alcuni esempi di finestre di messaggio VBA reali e sono sicuro che questi esempi ti ispireranno a usarlo.
#1. Esegui una macro con un MsgBox VBA
Ora con l’aiuto della funzione msgbox puoi chiedere all’utente prima di eseguire una macro. Diamo un’occhiata alla macro qui sotto per capire.
Sotto SalvaQuesto()
Risultato dim come numero intero
Risultato = MsgBox(“Vuoi salvare questo file?”, vbOKCancel)
Se risultato = vbOK Allora
ActiveWorkbook.Salva
Sottotitolo finale
Puoi chiedere all’utente di salvare la cartella di lavoro e se l’utente fa clic sul pulsante OK, il codice macro salverà la cartella di lavoro.
#2. Inserisci una tabella in una finestra di messaggio
È possibile utilizzare vbTab per inserire dati tabulari nella finestra di messaggio. In questo esempio, la tabella inizia dalla cella A1.
Sotto AddToMsgBox()
Dim messaggio come stringa
Dim r come int
Dim c come int
Dim rc come int
Dim cc come int
Dim myRows As Range
Dim myColumns come intervallo
Messaggio = “”
Imposta mieRighe = Intervallo(“A:A”)
Imposta mieColonne = Intervallo(“1:1”)
rc = Applicazione.CountA(mieRighe)
cc = Application.CountA(miecolonne)
Per r = 1 a rcPer c = 1 a cc
Messaggio = Messaggio e celle(r, c).Testo
Se c <= cc Allora
Messaggio = Messaggio e vbTab
successivo cMsg = Msg & vbCrLf
Il prossimo r
MsgBox Msg
Sottotitolo finale
#3. Mostra la finestra di messaggio all’apertura di un file
Se guardi la macro seguente, ho utilizzato auto_open per creare un messaggio da visualizzare all’apertura della cartella di lavoro.
Sotto auto_open()
MsgBox “Benvenuti in Exceladvisor e grazie per aver scaricato questo file” _
+ vbNewLine + vbNewLine + “Qui troverai una spiegazione dettagliata della funzione MsgBox. » _
+ vbNewLine + vbNewLine + “E non dimenticare di dare un’occhiata ad altre cose interessanti. »
Sottotitolo finale
Asporto
- Non puoi aggiungere quattro pulsanti a una finestra di messaggio se non utilizzi il pulsante della guida come quarto pulsante.
- Per creare un file della guida per la tua casella di messaggio, puoi fare riferimento al seguente file di esempio.
File di esempio
Scarica questo file di esempio qui per saperne di più.
Conclusione
La finestra di messaggio non solo ti aiuta a trasmettere un messaggio, ma dà anche un’impressione creativa all’utente. Puoi inviare loro un messaggio e ottenere una risposta semplice.
E come ho detto, se sei nuovo a VBA, imparare a usare una finestra di messaggio è una delle cose migliori. Spero che questo articolo ti abbia aiutato ad avvicinarti al tuo sogno di padroneggiare VBA, ma ora dimmi una cosa.
Pensi che la funzione MsgBox sia una delle cose più interessanti di VBA?
Assicurati di condividere le tue opinioni con me nella sezione commenti, mi piacerebbe sentire la tua opinione e non dimenticare di condividere questo suggerimento con i tuoi amici.
Ulteriori informazioni su VBA