Excel VBA MsgBox (sõnumikast) - kõik, mida peate teadma!

Excel VBA -s saate sõnumikasti kuvamiseks kasutada funktsiooni MsgBox (nagu allpool näidatud):

MsgBox pole midagi muud kui dialoogiboks, mille abil saate oma kasutajaid teavitada, näidates kohandatud sõnumit või hankides mõned põhilised sisendid (nt Jah/Ei või OK/Tühista).

Kui kuvatakse dialoogiboks MsgBox, peatatakse teie VBA -kood. Ülejäänud VBA koodi käivitamiseks peate klõpsama mis tahes MsgBoxi nuppu.

Märkus. Selles õpetuses kasutan sõnade sõnumikast ja MsgBox vaheldumisi. Excel VBA -ga töötades peate alati kasutama MsgBox.

VBA MsgBoxi anatoomia Excelis

Sõnumikast sisaldab järgmisi osi:

  1. Pealkiri: Seda kasutatakse tavaliselt sõnumiboksi kuvamiseks. Kui te midagi ei määra, kuvatakse rakenduse nimi - antud juhul Microsoft Excel.
  2. Viip: Seda teadet soovite kuvada. Selle ruumi abil saate siia kirjutada paar rida või kuvada isegi tabeleid/andmeid.
  3. Nupp (id): Kuigi vaikenupp on OK, saate seda kohandada, et kuvada selliseid nuppe nagu Jah/Ei, Jah/Ei/Tühista, Proovi uuesti/Ignoreeri jne.
  4. Sulge ikoon: Saate sõnumikasti sulgeda, klõpsates sulgemisikoonil.

Funktsiooni VBA MsgBox süntaks

Nagu ma mainisin, on MsgBox funktsioon ja selle süntaks sarnaneb teiste VBA funktsioonidega.

MsgBox (viip [, nupud] [, pealkiri] [, abifail, kontekst])

  • viip - See on kohustuslik argument. See kuvab sõnumi, mida näete MsgBoxis. Meie näites on tekst „See on MsgBoxi näidis” „viip”. Viipas saate kasutada kuni 1024 tähemärki ja seda saab kasutada ka muutujate väärtuste kuvamiseks. Kui soovite kuvada viiba, millel on mitu rida, saate seda ka teha (sellest lähemalt hiljem selles õpetuses).
  • [nupud] - See määrab, millised nupud ja ikoonid kuvatakse MsgBoxis. Näiteks kui ma kasutan vbOkOnly, näitab see ainult nuppu OK ja kui ma kasutan vbOKCancel, siis nii OK kui ka Cancel nuppu. Selles juhendis käsitlen hiljem erinevaid nuppe.
  • [pealkiri] - Siin saate sõnumi dialoogiboksis määrata, millist pealdist soovite. See kuvatakse MsgBoxi tiitliribal. Kui te midagi ei määra, näitab see rakenduse nime.
  • [abifail] - Saate määrata abifaili, millele pääseb juurde, kui kasutaja klõpsab nupul Abi. Abinupp ilmub ainult siis, kui kasutate selle jaoks nupukoodi. Kui kasutate abifaili, peate täpsustama ka konteksti argumendi.
  • [Sisu] - See on numbriline avaldis, mis on spikri kontekstinumber, mis on määratud asjakohasele spikriteemale.

Kui te pole Msgboxi kontseptsioonis uus, ignoreerige argumente [abifail] ja [kontekst]. Olen harva näinud nende kasutamist.

Märkus. Kõik nurksulgudes olevad argumendid on valikulised. Kohustuslik on ainult „kiire” argument.

Exceli VBA MsgBox nupukonstandid (näited)

Selles jaotises käsitlen erinevat tüüpi nuppe, mida saate VBA MsgBoxiga kasutada.

Enne kui näitan teile selle VBA -koodi ja seda, kuidas MsgBox välja näeb, on siin tabel, kus on loetletud kõik erinevad nupukonstandid, mida saate kasutada.

Nupp Pidev Kirjeldus
vbOKOnly Näitab ainult nuppu OK
vbOKCancel Näitab nuppe OK ja Tühista
vbAbortRetryIgnore Näitab nuppe Katkesta, Proovi uuesti ja Ignoreeri
vbJahEi Näitab nuppe Jah ja Ei
vbJahEiTühista Näitab nuppe Jah, Ei ja Tühista
vbRetryCancel Näitab uuesti proovimise ja tühistamise nuppe
vbMsgBoxHelpButton Kuvab nupu Abi. Selle toimimiseks peate kasutama funktsiooni MsgBox abi ja konteksti argumente
vbDefaultButton1 Muudab esimese nupu vaikeseadeks. Vaikenupu muutmiseks saate numbrit muuta. Näiteks vbDefaultButton2 muudab teise nupu vaikimisi

Märkus. Erinevate nuppude loomise näiteid lugedes võite küsida, mis mõte neil nuppudel on, kui see koodi ei mõjuta.

See teeb! Valiku põhjal saate kodeerida, mida soovite, et kood teeks. Näiteks kui valite OK, peaks kood jätkuma ja kui klõpsate nuppu Tühista, peaks kood peatuma. Seda saab teha muutujate abil ja määrates muutujale sõnumikasti väärtuse. Me käsitleme seda selle õpetuse hilisemates osades.

Nüüd vaatame mõningaid näiteid selle kohta, kuidas erinevaid nuppe saab MsgBoxis kuvada ja kuidas see välja näeb.

MsgBoxi nupud - vbOKOnly (vaikimisi)

Kui kasutate ainult viipa ja ei määra ühtegi argumenti, kuvatakse vaikesõnumite kast, nagu allpool näidatud:

Allpool on kood, mis annab selle sõnumikasti:

Sub DefaultMsgBox () MsgBox "See on näidiskast" End Sub

Pange tähele, et tekstistring peab olema jutumärkides.

Võite kasutada ka nuppu konstant vbOKOnly, kuid isegi kui te midagi ei määra, peetakse seda vaikimisi.

MsgBoxi nupud - OK ja tühista

Kui soovite kuvada ainult nuppu OK ja Tühista, peate kasutama konstanti vbOKCancel.

Sub MsgBoxOKCancel () MsgBox "Kas soovite jätkata?", VbOKCancel End Sub

MsgBoxi nupud - katkesta, proovi uuesti ja ignoreeri

Nuppude Katkesta, Proovi uuesti ja Ignoreeri kuvamiseks saate kasutada konstanti „vbAbortRetryIgnore”.

Sub MsgBoxAbortRetryIgnore () MsgBox "Mida sa tahad teha?", VbAbortRetryIgnore End Sub

MsgBoxi nupud - jah ja ei

Nuppude Jah ja Ei kuvamiseks saate kasutada konstanti „vbYesNo”.

Sub MsgBoxYesNo () MsgBox "Kas me peaksime lõpetama?", VbJah

MsgBoxi nupud - jah, ei ja tühista

Nuppude Jah, Ei ja Tühista kuvamiseks saate kasutada konstanti „vbYesNoCancel”.

Sub MsgBox Jah

MsgBoxi nupud - proovige uuesti ja tühista

Uuesti proovimise ja tühistamise nuppude kuvamiseks saate kasutada konstanti „vbRetryCancel”.

Sub MsgBoxRetryCancel () MsgBox "Mida sa tahad edasi teha?", VbRetryCancel End Sub

MsgBoxi nupud - abinupp

Abinupu kuvamiseks saate kasutada konstanti „vbMsgBoxHelpButton”. Saate seda kasutada koos muude nupukonstantidega.

Sub MsgBoxRetryHelp () MsgBox "Mida sa tahad edasi teha?", VbRetryCancel + vbMsgBoxHelpButton End Sub

Pange tähele, et selles koodis oleme ühendanud kaks erinevat nupukonstanti (vbRetryCancel + vbMsgBoxHelpButton). Esimeses osas on nupud Uuesti proovimine ja Tühista ning teises osas nupp Abi.

MsgBoxi nupud - vaikenupu määramine

Esimese nupu vaikimisi määramiseks saate kasutada konstanti „vbDefaultButton1”. See tähendab, et nupp on juba valitud ja kui vajutate sisestusklahvi, käivitab see selle nupu.

Allpool on kood, mis määrab teise nupu (nupu „Ei”) vaikimisi.

Sub MsgBoxOKCancel () MsgBox "Mida sa tahad edasi teha?", VbJahTühista + vbDefaultButton2 End Sub

Enamikul juhtudel on vasakpoolne nupp vaikenupp. Teisi nuppe saate valida vbDefaultButton2, vbDefaultButton3 ja vbDefaultButton4 abil.

Exceli VBA MsgBox ikoonikonstandid (näited)

Lisaks nuppudele saate kohandada ka ikoone, mis kuvatakse dialoogiboksis MsgBox. Näiteks võib teil olla punane kriitiline ikoon või sinine teabeikoon.

Allpool on tabel, kus on loetletud kood, mis näitab vastavat ikooni.

Ikoon Pidev Kirjeldus
vbKriitiline Kuvab kriitilise sõnumi ikooni
vbKüsimus Kuvab küsimuse ikooni
vbHüüe Kuvab hoiatusteate ikooni
vbInformatsioon Kuvab teabeikooni

MsgBoxi ikoonid - kriitilised

Kui soovite oma MsgBoxis kuvada kriitilist ikooni, kasutage konstanti vbCritical. Saate seda kasutada koos teiste nupukonstantidega (pannes koodide vahele + märgi).

Näiteks allpool on kood, mis näitab vaikimisi OK nuppu kriitilise ikooniga.

Sub MsgBoxCriticalIcon () MsgBox "See on näidiskast", vbCritical End Sub

Kui soovite kriitilist ikooni kuvada nuppudega Jah ja Ei, kasutage järgmist koodi:

Sub MsgBoxCriticalIcon () MsgBox "See on näidiskast", vbJahEi + vbCritical End Sub

MsgBoxi ikoonid - küsimus

Kui soovite oma MsgBoxis kuvada kriitilist ikooni, kasutage konstanti vbQuestion.

Sub MsgBoxQuestionIcon () MsgBox "See on näidiskast", vbJahEi + vbQuestion End Sub

MsgBoxi ikoonid - hüüatus

Kui soovite oma MsgBoxis kuvada hüüumärgi ikooni, kasutage vbExclamation konstanti.

Sub MsgBoxExclamationIcon () MsgBox "See on näidiskast", vbJahEi + vbTõendi lõpp Alam

MsgBoxi ikoonid - teave

Kui soovite oma MsgBoxis kuvada teabeikooni, kasutage konstanti vbInformation.

Sub MsgBoxInformationIcon () MsgBox "See on näidiskast", vbJahEi + vbInformation End Sub

Pealkirja ja viiba kohandamine MsgBoxis

MsgBoxi kasutades saate kohandada pealkirja ja viipasõnumeid.

Siiani on meie näites kasutatud pealkirjana Microsoft Excelit. Kui te pealkirjaargumenti ei määra, kasutab MsgBox automaatselt rakenduse pealkirja (mis on antud juhul olnud Microsoft Excel).

Pealkirja saate kohandada, määrates selle allpool näidatud koodis:

Sub MsgBoxInformationIcon () MsgBox "Kas soovite jätkata?", VbYesNo + vbQuestion, "Samm 1/3" Lõpeta alam

Samamoodi saate kohandada ka kiiret sõnumit.

Viipeteatele saate lisada ka reavaheid.

Allolevasse koodi olen lisanud reavahe, kasutades „vbNewLine”.

Sub MsgBoxInformationIcon () MsgBox "Kas soovite jätkata?" & vbNewLine & "Jätkamiseks klõpsake Jah", vbYesNo + vbQuestion, "Samm 1/3" Lõpeta alam

Uue rea sisestamiseks viipasõnumisse saate kasutada ka käru tagasitulekumärki - Chr (13) - või reavahetust - Chr (10).

Pange tähele, et saate uue rea lisada ainult viipale, mitte pealkirjale.

MsgBoxi väärtuse määramine muutujale

Siiani oleme näinud näiteid, kus oleme loonud sõnumikastid ja kohandanud nuppe, ikoone, pealkirju ja viipasid.

Nupule klõpsamine pole aga midagi teinud.

Funktsiooniga MsgBox Excelis saate otsustada, mida teha, kui kasutaja klõpsab konkreetsel nupul. Ja see on võimalik, kuna iga nupuga on seotud väärtus.

Nii et kui ma klõpsan nupul Jah, tagastab funktsioon MsgBox väärtuse (6 või konstant vbJah), mida saan oma koodis kasutada. Samamoodi, kui kasutaja valib nupu Ei, tagastab see teise väärtuse ((7 või konstant vbNo)), mida saan koodis kasutada.

Allpool on tabel, mis näitab täpseid väärtusi ja funktsiooni MsgBox tagastatud konstanti. Te ei pea neid meelde jätma, vaid olge sellest teadlikud ja saate kasutada hõlpsamini kasutatavaid konstandeid.

Nupul klõpsatud Pidev Väärtus
Okei vbOK 1
Tühista vbTühista 2
Katkesta vbAbort 3
Uuesti proovima vbProovige uuesti 4
Ignoreeri vb Ignoreeri 5
Jah vbJah 6
Ei vbEi 7

Nüüd vaatame, kuidas saame kontrollida VBA makrokoodi selle põhjal, millist nuppu kasutaja klõpsab.

Kui kasutaja klõpsab allolevas koodis Jah, kuvatakse teade „Klõpsasite jah“ ja kui kasutaja klõpsab Ei, kuvatakse teade „Klõpsasite Ei“.

Alam MsgBoxInformationIcon () Tulemus = MsgBox ("Kas soovite jätkata?", VbYesNo + vbQuestion) Kui Tulemus = vbJah Siis MsgBox "Klõpsasite Jah" Muu: MsgBox "Klõpsasite Ei" Lõpeta kui lõpeta alam

Ülaltoodud koodis olen määranud funktsiooni MsgBox väärtuse muutujale Tulemus. Kui klõpsate nuppu Jah, saab tulemi muutuja konstantse vbYes (või numbri 6) ja kui klõpsate nuppu Ei, saab muutuja Result muutuja vbNo (või numbri 7).

Seejärel kasutasin konstruktsiooni If Then Else, et kontrollida, kas muutuja Result omab väärtust vbYes. Kui see nii on, kuvatakse viip „Klõpsasite jah“, muidu aga „Klõpsasite ei“.

Saate kasutada sama kontseptsiooni koodi käivitamiseks, kui kasutaja klõpsab Jah, ja väljuda alamjaotusest, kui ta klõpsab Ei.

Märkus. Kui määrate muutujale MsgBoxi väljundi, peate sulgudes sisestama funktsiooni MsgBox argumendid. Näiteks reas Tulemus = MsgBox ("Kas soovite jätkata?", VbYesNo + vbQuestion), näete, et argumendid on sulgudes.

Kui soovite sõnumikasti funktsiooni veelgi süveneda, siis siin on selle ametlik dokument.

Samuti võivad teile meeldida järgmised Exceli VBA õpetused:

  • Exceli VBA poolitusfunktsioon.
  • Funktsioon Excel VBA InStr.
  • Lahtrite ja vahemikega töötamine Excel VBA -s.
  • Töölehtedega töötamine VBA -s.
  • Töövihikutega töötamine VBA -s.
  • Silmuste kasutamine Excel VBA -s.
  • Exceli VBA andmetüüpide (muutujate ja konstantide) mõistmine
  • Kuidas luua ja kasutada isiklikku makro töövihikut Excelis.
  • Kasulikud Exceli makrokoodide näited.
  • Järgmise silmuse kasutamine Excel VBA -s.
  • Exceli VBA sündmused - lihtne (ja täielik) juhend.
  • Makro käitamine Excelis-täielik samm-sammuline juhend.
  • Exceli lisandmooduli loomine ja kasutamine

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave