Excel VBA MsgBox (Casetă de mesaje) - Tot ce trebuie să știți!

În Excel VBA, puteți utiliza funcția MsgBox pentru a afișa o casetă de mesaje (așa cum se arată mai jos):

Un MsgBox nu este altceva decât o casetă de dialog pe care o puteți utiliza pentru a informa utilizatorii afișând un mesaj personalizat sau pentru a obține unele intrări de bază (cum ar fi Da / Nu sau OK / Anulare).

În timp ce este afișată caseta de dialog MsgBox, codul dvs. VBA este oprit. Trebuie să faceți clic pe oricare dintre butoanele din MsgBox pentru a rula codul VBA rămas.

Notă: În acest tutorial, voi folosi interschimbabil caseta de mesaje cuvinte și MsgBox. Când lucrați cu Excel VBA, trebuie întotdeauna să utilizați MsgBox.

Anatomia unei VBA MsgBox în Excel

O casetă de mesaj are următoarele părți:

  1. Titlu: Acesta este de obicei folosit pentru a afișa despre ce este caseta de mesaje. Dacă nu specificați nimic, acesta afișează numele aplicației - care este Microsoft Excel în acest caz.
  2. Prompt: Acesta este mesajul pe care doriți să îl afișați. Puteți utiliza acest spațiu pentru a scrie câteva rânduri sau chiar pentru a afișa tabele / date aici.
  3. Butoane): În timp ce OK este butonul implicit, îl puteți personaliza pentru a afișa butoane precum Da / Nu, Da / Nu / Anulare, Reîncercați / Ignorați etc.
  4. Pictogramă închidere: Puteți închide caseta de mesaje făcând clic pe pictograma închidere.

Sintaxa funcției VBA MsgBox

După cum am menționat, MsgBox este o funcție și are o sintaxă similară cu alte funcții VBA.

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

  • prompt - Acesta este un argument obligatoriu. Afișează mesajul pe care îl vedeți în MsgBox. În exemplul nostru, textul „Acesta este un exemplu MsgBox” este „promptul”. Puteți utiliza până la 1024 de caractere în prompt și îl puteți utiliza și pentru a afișa valorile variabilelor. În cazul în care doriți să afișați un prompt care are mai multe linii, puteți face acest lucru și (mai multe despre acest lucru mai târziu în acest tutorial).
  • [butoane] - Determină ce butoane și pictograme sunt afișate în MsgBox. De exemplu, dacă folosesc vbOkOnly, acesta va afișa numai butonul OK și, dacă folosesc vbOKCancel, va afișa atât butoanele OK, cât și butoanele Cancel. Voi acoperi diferite tipuri de butoane mai târziu în acest tutorial.
  • [titlu] - Aici puteți specifica ce subtitrare doriți în caseta de dialog a mesajului. Aceasta este afișată în bara de titlu a MsgBox. Dacă nu specificați nimic, va apărea numele aplicației.
  • [fișier de ajutor] - Puteți specifica un fișier de ajutor care poate fi accesat atunci când un utilizator face clic pe butonul Ajutor. Butonul de ajutor va apărea numai atunci când utilizați codul butonului pentru acesta. Dacă utilizați un fișier de ajutor, trebuie să specificați și argumentul contextului.
  • [context] - Este o expresie numerică care este numărul contextului Ajutor atribuit subiectului Ajutor corespunzător.

Dacă sunteți nou în conceptul Msgbox, nu ezitați să ignorați argumentele [helpfile] și [context]. Rar am văzut că acestea sunt folosite.

Notă: Toate argumentele între paranteze sunt opționale. Numai argumentul „prompt” este obligatoriu.

Constante de butoane Excel VBA MsgBox (exemple)

În această secțiune, voi acoperi diferitele tipuri de butoane pe care le puteți utiliza cu un VBA MsgBox.

Înainte de a vă arăta codul VBA pentru acesta și cum arată MsgBox, iată un tabel care listează toate constantele de butoane pe care le puteți utiliza.

Buton Constant Descriere
vbOKDoar Afișează numai butonul OK
vbOKAnulați Afișează butoanele OK și Anulare
vbAbortRetryIgnore Afișează butoanele Anulare, Reîncercare și Ignorare
vbDa Nu Afișează butoanele Da și Nu
vbYesNoCancel Afișează butoanele Da, Nu și Anulare
vbRetryCancel Afișează butoanele Reîncercați și Anulați
vbMsgBoxHelpButton Afișează butonul Ajutor. Pentru ca acest lucru să funcționeze, trebuie să utilizați ajutorul și argumentele de context în funcția MsgBox
vbDefaultButton1 Face ca primul buton să fie implicit. Puteți schimba numărul pentru a schimba butonul implicit. De exemplu, vbDefaultButton2 face ca al doilea buton să fie implicit

Notă: în timp ce parcurgeți exemplele de creare a unor butoane diferite, vă puteți întreba ce rost are aceste butoane dacă nu are niciun impact asupra codului.

Da! Pe baza selecției, puteți codifica ceea ce doriți să facă codul. De exemplu, dacă selectați OK, codul ar trebui să continue și, dacă faceți clic pe Anulare, codul ar trebui să se oprească. Acest lucru se poate face folosind variabile și atribuind valoarea Casetei de mesaje unei variabile. Vom acoperi acest lucru în secțiunile ulterioare ale acestui tutorial.

Acum, aruncăm o privire la câteva exemple despre modul în care pot fi afișate diferitele butoane într-un MsgBox și cum arată.

Butoane MsgBox - vbOKOnly (implicit)

Dacă utilizați numai solicitarea și nu specificați niciunul dintre argumente, veți primi caseta de mesaj implicită, așa cum se arată mai jos:

Mai jos este codul care va da această casetă de mesaj:

Sub DefaultMsgBox () MsgBox "Aceasta este o mostră de casetă" End Sub

Rețineți că șirul de text trebuie să fie între ghilimele duble.

De asemenea, puteți utiliza butonul constant vbOKOnly, dar chiar dacă nu specificați nimic, este luat ca implicit.

Butoane MsgBox - OK & Anulare

Dacă doriți să afișați numai OK și butonul Anulare, trebuie să utilizați constanta vbOKCancel.

Sub MsgBoxOKCancel () MsgBox "Vrei să continui?", VbOKCancel End Sub

Butoane MsgBox - Anulați, reîncercați și ignorați

Puteți utiliza constanta „vbAbortRetryIgnore” pentru a afișa butoanele Abort, Reîncercați și Ignorați.

Sub MsgBoxAbortRetryIgnore () MsgBox „Ce vrei să faci?”, VbAbortRetryIgnore End Sub

Butoane MsgBox - Da și Nu

Puteți utiliza constanta „vbYesNo” pentru a afișa butoanele Da și Nu.

Sub MsgBoxYesNo () MsgBox "Ar trebui să ne oprim?", VbYesNo End Sub

Butoane MsgBox - Da, Nu și Anulați

Puteți utiliza constanta „vbYesNoCancel” pentru a afișa butoanele Da, Nu și Anulare.

Sub MsgBoxYesNoCancel () MsgBox "Ar trebui să ne oprim?", VbYesNoCancel End Sub

Butoane MsgBox - Încercați din nou și anulați

Puteți utiliza constanta „vbRetryCancel” pentru a afișa butoanele Reîncercați și Anulați.

Sub MsgBoxRetryCancel () MsgBox „Ce vrei să faci în continuare?”, VbRetryCancel End Sub

Butoane MsgBox - Buton Ajutor

Puteți utiliza constanta „vbMsgBoxHelpButton” pentru a afișa butonul de ajutor. Îl puteți folosi cu alte constante de buton.

Sub MsgBoxRetryHelp () MsgBox "Ce vrei să faci în continuare?", VbRetryCancel + vbMsgBoxHelpButton End Sub

Rețineți că în acest cod am combinat două constante de butoane diferite (vbRetryCancel + vbMsgBoxHelpButton). Prima parte prezintă butoanele Reîncercați și Anulați, iar a doua parte afișează butonul Ajutor.

Butoane MsgBox - Setarea unui buton implicit

Puteți utiliza constanta „vbDefaultButton1” pentru a seta primul buton ca implicit. Aceasta înseamnă că butonul este deja selectat și dacă apăsați Enter, acesta execută butonul respectiv.

Mai jos este codul care va seta al doilea buton (butonul „Nu”) ca implicit.

Sub MsgBoxOKCancel () MsgBox "Ce vrei să faci în continuare?", VbDaNuCancel + vbDefaultButton2 End Sub

În majoritatea cazurilor, butonul din stânga este cel implicit. Puteți alege alte butoane folosind vbDefaultButton2, vbDefaultButton3 și vbDefaultButton4.

Constante de pictograme VBA MsgBox Excel (exemple)

În afară de butoane, puteți personaliza și pictogramele care sunt afișate în caseta de dialog MsgBox. De exemplu, puteți avea o pictogramă critică roșie sau o pictogramă albastră de informații.

Mai jos este un tabel care listează codul care va afișa pictograma corespunzătoare.

Pictogramă constantă Descriere
vbCritic Afișează pictograma mesajului critic
vbÎntrebare Afișează pictograma întrebare
vbExclamation Afișează pictograma mesajului de avertizare
vbInformații Afișează pictograma de informații

Icoane MsgBox - critice

Dacă doriți să afișați o pictogramă critică în MsgBox, utilizați constanta vbCritical. Puteți utiliza acest lucru împreună cu alte constante de buton (punând un semn + între coduri).

De exemplu, mai jos este un cod care va afișa butonul OK implicit cu o pictogramă critică.

Sub MsgBoxCriticalIcon () MsgBox "Aceasta este o cutie de probă", vbCritical End Sub

Dacă doriți să afișați pictograma critică cu butoanele Da și Nu, utilizați următorul cod:

Sub MsgBoxCriticalIcon () MsgBox "Aceasta este o casetă de probă", vbYesNo + vbCritical End Sub

Icoane MsgBox - Întrebare

Dacă doriți să afișați o pictogramă critică în MsgBox, utilizați constanta vbQuestion.

Sub MsgBoxQuestionIcon () MsgBox "Aceasta este o cutie de probă", vbYesNo + vbQuestion End Sub

Icoane MsgBox - Exclamare

Dacă doriți să afișați o pictogramă de exclamare în MsgBox, utilizați constanta vbExclamation.

Sub MsgBoxExclamationIcon () MsgBox "Aceasta este o casetă de probă", vbDaNu + vbExclamation End Sub

Icoane MsgBox - Informații

Dacă doriți să afișați o pictogramă de informații în MsgBox, utilizați constanta vbInformation.

Sub MsgBoxInformationIcon () MsgBox "Aceasta este o casetă de probă", vbYesNo + vbInformation End Sub

Personalizarea titlului și a solicitării în MsgBox

Când utilizați MsgBox, puteți personaliza titlul și mesajele prompt.

Până în prezent, exemplul pe care l-am văzut a folosit Microsoft Excel ca titlu. În cazul în care nu specificați argumentul titlu, MsgBox utilizează automat titlul aplicației (care a fost Microsoft Excel în acest caz).

Puteți personaliza titlul specificându-l în cod, după cum se arată mai jos:

Sub MsgBoxInformationIcon () MsgBox "Vrei să continui?", VbDaNu + vbQuestion, "Pasul 1 din 3" Încheiere sub

În mod similar, puteți personaliza și mesajul prompt.

De asemenea, puteți adăuga întreruperi de linie în mesajul prompt.

În codul de mai jos, am adăugat o întrerupere de linie folosind „vbNewLine”.

Sub MsgBoxInformationIcon () MsgBox "Vrei să continui?" & vbNewLine & „Faceți clic pe Da pentru a continua”, vbDa Nu + vbÎntrebare, „Pasul 1 din 3” Încheiere sub

De asemenea, puteți utiliza caracterul de returnare a căruciorului - Chr (13) - sau avans de linie - Chr (10) pentru a insera o nouă linie în mesajul de prompt.

Rețineți că puteți adăuga o nouă linie numai la mesajul prompt și nu titlul.

Atribuirea valorii MsgBox unei variabile

Până acum, am văzut exemplele în care am creat casete de mesaje și am personalizat butoanele, pictogramele, titlul și promptul.

Cu toate acestea, făcând clic pe un buton nu a făcut nimic.

Cu funcția MsgBox în Excel, puteți decide ce doriți să faceți atunci când un utilizator face clic pe un anumit buton. Și acest lucru este posibil, deoarece fiecare buton are o valoare asociată.

Deci, dacă fac clic pe butonul Da, funcția MsgBox returnează o valoare (6 sau constantă vbYes) pe care o pot folosi în codul meu. În mod similar, utilizatorul selectează butonul Nu, returnează o valoare diferită ((7 sau constanta vbNo)) pe care o pot folosi în cod.

Mai jos este un tabel care arată valorile exacte și constanta returnată de funcția MsgBox. Nu este nevoie să le memorați, trebuie doar să fiți conștienți de aceasta și puteți utiliza constantele care sunt mai ușor de utilizat.

Buton făcut clic 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 să vedem cum putem controla codul macro VBA pe baza butonului pe care un utilizator dă clic.

În codul de mai jos, dacă utilizatorul dă clic pe Da, afișează mesajul „Ai făcut clic pe Da”, iar dacă utilizatorul dă clic pe Nu, afișează „Ai făcut clic pe Nu”.

Sub MsgBoxInformationIcon () Result = MsgBox ("Vrei să continui?", VbYesNo + vbQuestion) If Result = vbYes Then MsgBox "Ai făcut clic pe Da" Altfel: MsgBox "Ai făcut clic pe Nu" End If End Sub

În codul de mai sus, am atribuit valoarea funcției MsgBox variabilei Rezultat. Când faceți clic pe butonul Yes, variabila Result obține constanta vbYes (sau numărul 6) și când faceți clic pe No, variabila Result obține constanta vbNo (sau numărul 7).

Apoi am folosit un construct If Then Else pentru a verifica dacă variabila Result deține valoarea vbDa. În caz contrar, se afișează solicitarea „Ai făcut clic pe Da”, altfel afișează „Ai făcut clic pe Nu”.

Puteți utiliza același concept pentru a rula un cod dacă un utilizator dă clic pe Da și iese din sub atunci când face clic pe Nu.

Notă: Când atribuiți ieșirea MsgBox unei variabile, trebuie să puneți argumentele funcției MsgBox între paranteze. De exemplu, în linie Rezultat = MsgBox („Vrei să continui?”, VbDa Nu + vbIntrebare), puteți vedea că argumentele sunt între paranteze.

Dacă doriți să aprofundați funcția Casetă de mesaje, iată documentul oficial de pe aceasta.

Vă pot plăcea, de asemenea, următoarele tutoriale Excel VBA:

  • Funcția Excel VBA Split.
  • Funcția Excel VBA InStr.
  • Lucrul cu celule și intervale în Excel VBA.
  • Lucrul cu foi de lucru în VBA.
  • Lucrul cu cărțile de lucru în VBA.
  • Utilizarea buclelor în Excel VBA.
  • Înțelegerea tipurilor de date Excel VBA (variabile și constante)
  • Cum se creează și se utilizează un registru de lucru personal Macro în Excel.
  • Exemple utile de coduri macro pentru Excel.
  • Utilizarea pentru următoarea buclă în Excel VBA.
  • Evenimente Excel VBA - Un ghid ușor (și complet).
  • Cum se execută o macro în Excel - Un ghid complet pas cu pas.
  • Cum să creați și să utilizați un program de completare Excel.

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

wave wave wave wave wave