Video: Filtro di ricerca su dati Excel con TextBox programmata con evento change di VBA 2024
La flessibilità dell'argomento dei pulsanti VBA semplifica la personalizzazione delle caselle di messaggi di Excel. È possibile scegliere quali pulsanti visualizzare, determinare se viene visualizzata un'icona e decidere quale pulsante è l'impostazione predefinita (il pulsante predefinito viene "cliccato" se l'utente preme Invio).
È possibile utilizzare le costanti incorporate per l'argomento dei pulsanti. Se preferisci, puoi usare il valore piuttosto che una costante (ma usare le costanti built-in è molto più semplice).
Per utilizzare più di una di queste costanti come argomento, è sufficiente collegarle con un operatore +. Ad esempio, per visualizzare una finestra di messaggio con i pulsanti Sì e No e un'icona punto esclamativo, utilizzare la seguente espressione come secondo argomento MsgBox:
vbYesNo + vbExclamation
Oppure, se si preferisce rendere il codice meno comprensibile, utilizzare un valore di 52 (cioè, 4 + 48).
Nell'esempio seguente viene utilizzata una combinazione di costanti per visualizzare una finestra di messaggio con un pulsante Sì e un pulsante No (vbYesNo) nonché un'icona con un punto interrogativo (vbQuestion). La costante vbDefaultButton2 designa il secondo pulsante (No) come pulsante predefinito, ovvero il pulsante su cui si fa clic se l'utente preme Invio. Per semplicità, queste costanti vengono assegnate alla variabile Config e quindi usano Config come secondo argomento nella funzione MsgBox:
Sub GetAnswer3 () Dim Config As Long Dim Ans As Integer Config = vbYesNo + vbQuestion + vbDefaultButton2 Ans = MsgBox ("Elabora il report mensile?", Config) Se Ans = vbYes Then RunReport End Sub
Controlla la finestra di messaggio visualizzata in Excel quando si esegue la procedura GetAnswer3. Se l'utente fa clic sul pulsante Sì, la routine esegue la procedura denominata RunReport. Se l'utente fa clic sul pulsante No (o preme Invio), la routine termina senza alcuna azione. Poiché l'argomento titolo è stato omesso nella funzione MsgBox, Excel utilizza il titolo predefinito, Microsoft Excel.
La seguente routine fornisce un altro esempio dell'utilizzo della funzione MsgBox:
Sub GetAnswer4 () Dim Msg As String, Title As String Dim Config As Integer, Ans As Integer Msg = "Vuoi elaborare il report mensile? "Msg = Msg & vbNewLine & vbNewLine Msg = Msg &" L'elaborazione del report mensile avverrà "Msg = Msg &" richiede circa 15 minuti. "Msg = Msg &" genererà un rapporto di 30 pagine per "Msg = Msg &" tutti gli uffici vendite per il corrente "Msg = Msg &" mese. "Title =" XYZ Marketing Company "Config = vbYesNo + vbQuestion Ans = MsgBox (Msg, Config, Title) Se Ans = vbYes Then RunReport End Sub
Questo esempio dimostra un modo efficiente per specificare un messaggio più lungo in una finestra di messaggio.Una variabile (Msg) e l'operatore di concatenazione (&) vengono utilizzati per creare il messaggio in una serie di istruzioni. La costante vbNewLine inserisce un carattere di interruzione di riga che avvia una nuova riga (utilizzala due volte per inserire una riga vuota). L'argomento titolo viene utilizzato per visualizzare un titolo diverso nella finestra del messaggio. Ecco la finestra di messaggio visualizzata in Excel quando si esegue questa procedura.
Questa finestra di dialogo, visualizzata dalla funzione MsgBox, visualizza un titolo, un'icona e due pulsanti.È possibile utilizzare le costanti (come vbYes e vbNo) per il valore restituito da una funzione MsgBox. Ecco alcune altre costanti.
Costante | Valore | Che significa |
---|---|---|
vbOK | 1 | L'utente ha fatto clic su OK. |
vbCancel | 2 | L'utente ha fatto clic su Annulla. |
vbAbort | 3 | L'utente fa clic su Abort. |
vbRetry | 4 | L'utente ha fatto clic su Riprova. |
vbIgnore | 5 | L'utente fa clic su Ignora. |
vbYes | 6 | L'utente ha fatto clic su Sì. |
vbNo | 7 | L'utente ha fatto clic su No. |
E questo è praticamente tutto ciò che è necessario sapere sulla funzione MsgBox. Usa le caselle di messaggio con cautela, però. Di solito non c'è motivo di visualizzare finestre di messaggio che non servono a nulla. Ad esempio, le persone tendono ad arrabbiarsi quando vedono una casella di messaggio ogni giorno che legge Buongiorno. Grazie per aver caricato la cartella di lavoro Budget Projection.