Da Nu Casetă de mesaje (Msgbox) - Exemple de cod VBA

Acest tutorial va acoperi modul de utilizare a funcției VBA MsgBox pentru a afișa cutii de mesaje utilizatorilor (inclusiv Cutia de mesaje YesNo). S-ar putea să vă intereseze și articolul nostru despre InputBoxes.

Funcția VBA MsgBox

În VBA, este ușor să afișați un MsgBox simplu:

1 MsgBox "Aceasta este o casetă de mesaje"

Cu toate acestea, puteți face mult mai mult decât să afișați o simplă casetă de mesaje OK. Să vedem rapid un exemplu complicat înainte de a ne arunca cu capul în detalii …

VBA Da Nu Casetă de mesaje

Mai jos vom crea o casetă de mesaj cu:

  • Un titlu „Titlul casetei de mesaj” și solicitarea „Text”
  • O pictogramă semn de întrebare
  • Opțiuni Da / Nu în locul unui simplu „OK”
  • Buton implicit = „Nu”
123 Răspuns slab Ca întreganswer = MsgBox („Text”, vbQuestion + vbYesNo + vbDefaultButton2, „Title Box Message”)

Mesajul va returna vbDa sau vbNo în funcție de alegerea utilizatorului. Apoi, puteți efectua diferite acțiuni pe baza alegerii:

12345 Dacă răspuns = vbDa atunciMsgBox „Da”AltfelMsgBox „Nu”End If

În secțiunea următoare vă vom arăta toate opțiunile disponibile la crearea casetelor de mesaje. Apoi vă vom prezenta sintaxa funcției MsgBox și, în cele din urmă, vom trece peste alte exemple de casete de mesaje.

Opțiuni pentru caseta de mesaje VBA

Uitați-vă la imaginea de mai jos. Aici veți vedea (aproape) toate opțiunile disponibile la crearea casetelor de mesaje. Observați pictogramele și diferitele butoane.

Aceasta este o captură de ecran a „MessageBox Builder” din programul nostru de completare Premium VBA: AutoMacro. MessageBox Builder vă permite să proiectați rapid căsuța de mesaje dorită și să introduceți codul în modulul de cod. De asemenea, conține mulți alți constructori de coduri, o bibliotecă extinsă de coduri VBA și un sortiment de instrumente de codare. Este obligatoriu pentru orice dezvoltator VBA.

Sintaxa funcției MsgBox

MsgBox (prompt [, butoane] [, titlu] [, fișier de ajutor, context])

prompt (Obligatoriu) - Acesta este textul principal al casetei de mesaj.

butoane - Alegeți ce butoane să afișați. Dacă este omis, „OKonly”. Aici puteți specifica, de asemenea, ce pictogramă să afișați și butonul implicit.

titlu - Titlul din partea de sus a casetei de mesaje. Dacă este omis, se afișează numele aplicației curente (ex. Microsoft Excel).

fișier de ajutor - Specificați fișierul de ajutor care poate fi accesat atunci când utilizatorul face clic pe butonul „Ajutor”. Dacă este specificat, trebuie să adăugați și context (mai jos)

context - Expresie numerică care reprezintă numărul contextului Ajutor atribuit subiectului Ajutor corespunzător.

Puteți ignora probabil fișierele de ajutor și argumentele de context. Nu le-am văzut niciodată folosite.

Personalizați titlul și promptul casetei de mesaje

Funcția MsgBox vă permite să personalizați titlul și să solicitați mesajele astfel:

1 Mesaj "Prompt" ,, "Titlu"

Alt exemplu:

123 Sub MsgBoxPromptTitle ()MsgBox "Pasul 1 finalizat. Faceți clic pe OK pentru a rula pasul 2." ,, "Pasul 1 din 5"Sfârșitul Sub

Important! Trebuie să vă amintiți să vă înconjurați textul cu citate.

MessageBox LineBreaks

De asemenea, puteți adăuga întreruperi de linie la solicitările casetei de mesaj cu „vbNewLine”.

123 Sub MsgBoxPromptTitle_NewLine ()MsgBox „Pasul 1 finalizat”. & vbNewLine & „Faceți clic pe OK pentru a rula Pasul 2.”, „Pasul 1 din 5”Sfârșitul Sub

Observați că folosim simbolul & pentru a uni textul împreună. Puteți afla mai multe despre utilizarea & cu text și alte opțiuni pentru inserarea liniarelor în articolul nostru despre aderarea la text.

Pictograme MsgBox

VBA vă oferă posibilitatea de a adăuga una din cele patru pictograme pre-construite în casetele dvs. de mesaje:

Pictogramă constantă Pictogramă
vbInformații
vbCritic
vbÎntrebare
vbExclamation

Constanta pictogramei trebuie plasată în argumentul buton:

123 Sub MsgBoxQuestionIcon ()MsgBox „Exemplu de întrebare”, vbQuestionSfârșitul Sub

Aceasta va genera caseta de mesaj implicită „OK” cu pictograma Întrebare:

Observați cum, atunci când tastați, Editorul VBA vă va arăta opțiunile disponibile:

Acest lucru este util, deoarece nu trebuie să vă amintiți exact sintaxa sau numele pictogramelor sau butoanelor.

Acum vom demonstra fiecare pictogramă a casetei de mesaj:

Icoane MsgBox - Informații

123 Sub MsgBoxInformationIcon ()MsgBox "Exemplu de informații", vbInformationSfârșitul Sub

Icoane MsgBox - critice

123 Sub MsgBoxCriticalIcon ()MsgBox „Exemplu critic”, vbCriticalSfârșitul Sub

Icoane MsgBox - Întrebare

123 Sub MsgBoxQuestionIcon ()MsgBox „Exemplu de întrebare”, vbQuestionSfârșitul Sub

Icoane MsgBox - Exclamare

123 Sub MsgBoxExclamationIcon ()MsgBox "Exemplu de exclamație", vbExclamationSfârșitul Sub

Mai jos vom vorbi despre generarea de casete de mesaje cu aspecte diferite de butoane. Dacă alegeți un alt tip de casetă de mesaj, va trebui să adăugați tipul de pictogramă după butoane folosind un „+”:

123 Sub MsgBoxQuestionIcon ()MsgBox „Vrei să continui?”, VbOKCancel + vbQuestionSfârșitul Sub

Variabile MsgBox

Până acum am lucrat în principal cu caseta de mesaj implicită „OK”. Caseta de mesaje OK are o singură opțiune: Apăsarea „OK” permite codului să continue. Cu toate acestea, puteți specifica și alte grupări de butoane: OK / Anulare, Da / Nu etc.

În acest caz, veți dori să efectuați diferite acțiuni pe baza butonului care este apăsat. Să vedem un exemplu.

Iată căsuța de mesaje pe care o vom genera:

Acesta este întregul cod (îl vom defalca în continuare):

123456789101112 Sub MsgBoxVariable ()Răspuns slab Ca întreganswer = MsgBox („Vrei să continui?”, vbQuestion + vbYesNo)Dacă răspuns = vbDa atunciMsgBox „Da”AltfelMsgBox „Nu”End IfSfârșitul Sub

Mai întâi atribuim ieșirea casetei de mesaje unei variabile întregi.

123 Răspuns slab Ca întreganswer = MsgBox („Vrei să continui?”, vbQuestion + vbYesNo)

Apoi, folosim un If-Else pentru a determina ce să facem pe baza butonului care este apăsat:

12345 Dacă răspuns = vbDa atunciMsgBox „Da”AltfelMsgBox „Nu”End If

Funcția MsgBox returnează o valoare întreagă (între 1-7), deci definim variabila ca un tip întreg. Cu toate acestea, în loc să faceți referire la numărul întreg, puteți face referire la o constantă (ex. VbOK, vbCancel etc.). Uitați-vă la acest tabel pentru a vedea toate opțiunile:

Buton Constant Valoare
Bine vbOK 1
Anulare vbAnulați 2
Abortează vbAbort 3
Reîncercați vbRetry 4
Ignora vbIgnore 5
da vbDa 6
Nu vbNu 7

Acum vom demonstra fiecare grupare de butoane:

Casetă de mesaje OK - vbOKOnly

Aceasta este cutia de mesaje VBA standard.

123456 Sub MsgBox_OKOnly ()Răspuns slab Ca întreganswer = MsgBox ("Exemplu OKOnly", vbOKOnly)Sfârșitul Sub

OK Anulați caseta de mesaje - vbOKAnulați

123456789101112 Sub MsgBox_OKCancel ()Răspuns slab Ca întreganswer = MsgBox ("OK Anulare Exemplu", vbOKCancel)Dacă răspuns = vbOK AtunciMsgBox „OK”AltfelMsgBox „Anulare”End IfSfârșitul Sub

Da Nu Casetă de mesaje - vbDa Nu

123456789101112 Sub MsgBox_YesNo ()Răspuns slab Ca întreganswer = MsgBox ("Da Nu Exemplu", vbDa Nu)Dacă răspuns = vbDa atunciMsgBox „Da”AltfelMsgBox „Nu”End IfSfârșitul Sub

Da Nu Anulați caseta de mesaje - vbDa Nu Anulați

1234567891011121314 Sub MsgBox_YesNoCancel ()Răspuns slab Ca întreganswer = MsgBox ("Da Nu Anulați exemplul", vbDaNuAnulați)Dacă răspuns = vbDa atunciMsgBox „Da”ElseIf answer = vbNo AtunciMsgBox „Nu”AltfelMsgBox „Anulare”End IfSfârșitul Sub

Anulați reîncercați caseta de mesaje Ignorare - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore ()Răspuns slab Ca întreganswer = MsgBox ("Abort Reîncercați Ignoră Exemplul", vbAbortRetryIgnore)Dacă răspuns = vbAbort AtunciMsgBox „Întrerupeți”ElseIf answer = vbRetry ApoiMsgBox „Încercați din nou”AltfelMsgBox „Ignoră”End IfSfârșitul Sub

Reîncercați anulați caseta de mesaje - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel ()Răspuns slab Ca întreganswer = MsgBox („Exemplu de reîncercare de anulare”, vbRetryCancel)If answer = vbRetry AtunciMsgBox „Încercați din nou”AltfelMsgBox „Anulare”End IfSfârșitul Sub

Exemple de mesaje VBA

Confirmarea casetei de mesaje înainte de a rula macrocomenzile

Acest cod va afișa o casetă Da Nu Mesaj înainte de a apela o macro. Dacă se face clic pe Da, se apelează macro, dacă se face clic pe Nu, Macro nu rulează.

12345678 Sub Msgbox_BeforeRunning ()Răspuns slab Ca întreganswer = MsgBox („Vrei să rulezi Macro1?”, vbQuestion + vbYesNo)If answer = vbYes Then Call Macro1Sfârșitul Sub

Da / Nu Casetă de mesaje - Ieșiți din Sub

Aici vom confirma cu utilizatorul dacă va continua să ruleze o macro. Dacă se face clic pe Nu, codul va ieși din sub, altfel procedura va continua.

12345678910 Sub Msgbox_BeforeRunning ()Răspuns slab Ca întreganswer = MsgBox („Vrei să continui?”, vbQuestion + vbYesNo)If answer = vbNo Atunci Exit Sub- Un codSfârșitul Sub

Caseta de mesaje VBA în Access VBA

Toate exemplele de mai sus funcționează exact la fel în Access VBA ca în Excel VBA.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave