Excel VBA MsgBox (meddelelsesboks) - alt hvad du behøver at vide!

I Excel VBA kan du bruge funktionen MsgBox til at vise en meddelelsesboks (som vist nedenfor):

En MsgBox er ikke andet end en dialogboks, som du kan bruge til at informere dine brugere ved at vise en brugerdefineret meddelelse eller få nogle grundlæggende input (f.eks. Ja/Nej eller OK/Annuller).

Mens dialogboksen MsgBox vises, standses din VBA -kode. Du skal klikke på en af ​​knapperne i MsgBox for at køre den resterende VBA -kode.

Bemærk: I denne vejledning bruger jeg ordmeddelelsesboksen og MsgBox i flæng. Når du arbejder med Excel VBA, skal du altid bruge MsgBox.

Anatomi af en VBA MsgBox i Excel

En meddelelsesboks har følgende dele:

  1. Titel: Dette bruges typisk til at vise, hvad meddelelsesboksen handler om. Hvis du ikke angiver noget, viser det applikationsnavnet - som er Microsoft Excel i dette tilfælde.
  2. Hurtig: Dette er den meddelelse, du vil vise. Du kan bruge dette mellemrum til at skrive et par linjer eller endda vise tabeller/data her.
  3. Knap (er): Selvom OK er standardknappen, kan du tilpasse den til at vise knapper som Ja/Nej, Ja/Nej/Annuller, Prøv igen/Ignorer osv.
  4. Luk ikon: Du kan lukke meddelelsesboksen ved at klikke på ikonet Luk.

Syntaks for VBA MsgBox -funktionen

Som jeg nævnte, er MsgBox en funktion og har en syntaks, der ligner andre VBA -funktioner.

MsgBox (prompt [, knapper] [, titel] [, hjælpefil, kontekst])

  • hurtig - Dette er et påkrævet argument. Det viser den meddelelse, du ser i MsgBox. I vores eksempel er teksten "Dette er en prøve MsgBox" "prompten". Du kan bruge op til 1024 tegn i prompten og kan også bruge det til at vise variablernes værdier. Hvis du vil vise en prompt, der har flere linjer, kan du også gøre det (mere om dette senere i denne vejledning).
  • [knapper] - Det bestemmer, hvilke knapper og ikoner der vises i MsgBox. For eksempel, hvis jeg bruger vbOkOnly, viser det kun OK -knappen, og hvis jeg bruger vbOKCancel, viser det både OK- og Annuller -knapperne. Jeg vil dække forskellige slags knapper senere i denne vejledning.
  • [titel] - Her kan du angive, hvilken billedtekst du vil have i meddelelsesdialogboksen. Dette vises i titellinjen i MsgBox. Hvis du ikke angiver noget, viser det navnet på applikationen.
  • [hjælpefil] - Du kan angive en hjælpefil, der kan åbnes, når en bruger klikker på knappen Hjælp. Hjælp -knappen vises kun, når du bruger knapkoden til den. Hvis du bruger en hjælpefil, skal du også angive kontekstargumentet.
  • [sammenhæng] - Det er et numerisk udtryk, der er Hjælp -kontekstnummeret, der er tildelt det relevante Hjælp -emne.

Hvis du er ny inden for begrebet Msgbox, kan du ignorere [helpfile] og [context] argumenterne. Jeg har sjældent set disse blive brugt.

Bemærk: Alle argumenter i parenteser er valgfrie. Kun 'prompt' -argumentet er obligatorisk.

Excel VBA MsgBox -knapkonstanter (eksempler)

I dette afsnit vil jeg dække de forskellige typer knapper, du kan bruge med en VBA MsgBox.

Inden jeg viser dig VBA -koden til den, og hvordan MsgBox ser ud, er her en tabel, der viser alle de forskellige knapkonstanter, du kan bruge.

Knap konstant Beskrivelse
vbOKKun Viser kun knappen OK
vbOKCancel Viser knapperne OK og Annuller
vbAbortRetryIgnore Viser knapperne Abort, Retry og Ignore
vbJa Nej Viser knapperne Ja og Nej
vbYesNoCancel Viser knapperne Ja, Nej og Annuller
vbRetryCancel Viser knapperne Prøv igen og Annuller
vbMsgBoxHelpButton Viser knappen Hjælp. For at dette skal fungere, skal du bruge hjælp- og kontekstargumenterne i funktionen MsgBox
vbDefaultButton1 Gør den første knap til standard. Du kan ændre nummeret for at ændre standardknappen. For eksempel gør vbDefaultButton2 den anden knap som standard

Bemærk: Mens du går igennem eksemplerne på at oprette forskellige knapper, kan du undre dig over, hvad der er meningen med at have disse knapper, hvis det ikke har nogen indflydelse på koden.

Det gør det! Baseret på valget kan du kode, hvad du vil have koden til at gøre. Hvis du f.eks. Vælger OK, skal koden fortsætte, og hvis du klikker på Annuller, skal koden stoppe. Dette kan gøres ved at bruge variabler og tildele værdien af ​​meddelelsesboksen til en variabel. Vi vil dække dette i de senere afsnit af denne vejledning.

Lad os nu se på nogle eksempler på, hvordan de forskellige knapper kan vises i en MsgBox, og hvordan det ser ud.

MsgBox -knapper - vbOKOnly (standard)

Hvis du kun bruger prompten og ikke angiver nogen af ​​argumenterne, får du standardbeskedboksen som vist herunder:

Nedenfor er koden, der vil give denne meddelelsesboks:

Sub DefaultMsgBox () MsgBox "Dette er en prøveboks" Afslut Sub

Bemærk, at tekststrengen skal være i dobbelte anførselstegn.

Du kan også kun bruge knappen konstant vbOKOnly, men selvom du ikke angiver noget, er det taget som standard.

MsgBox -knapper - OK & Annuller

Hvis du kun vil vise OK og knappen Annuller, skal du bruge vbOKCancel -konstanten.

Sub MsgBoxOKCancel () MsgBox "Vil du fortsætte?", VbOKCancel End Sub

MsgBox -knapper - Afbryd, prøv igen og ignorer

Du kan bruge konstanten 'vbAbortRetryIgnore' til at vise knapperne Abort, Prøv igen og Ignorer.

Sub MsgBoxAbortRetryIgnore () MsgBox "Hvad vil du gøre?", VbAbortRetryIgnore End Sub

MsgBox -knapper - Ja og Nej

Du kan bruge konstanten ‘vbYesNo’ til at vise knapperne Ja og Nej.

Sub MsgBoxYesNo () MsgBox "Skal vi stoppe?", VbYesNo End Sub

MsgBox -knapper - Ja, Nej og Annuller

Du kan bruge konstanten ‘vbYesNoCancel’ til at vise knapperne Ja, Nej og Annuller.

Sub MsgBoxYesNoCancel () MsgBox "Skal vi stoppe?", VbYesNoCancel End Sub

MsgBox -knapper - Prøv igen og annuller

Du kan bruge konstanten ‘vbRetryCancel’ til at vise knapperne Prøv igen og Annuller.

Sub MsgBoxRetryCancel () MsgBox "Hvad vil du gøre derefter?", VbRetryCancel End Sub

MsgBox -knapper - Hjælp -knap

Du kan bruge konstanten ‘vbMsgBoxHelpButton’ til at vise hjælpeknappen. Du kan bruge den med andre knapkonstanter.

Sub MsgBoxRetryHelp () MsgBox "Hvad vil du gøre derefter?", VbRetryCancel + vbMsgBoxHelpButton End Sub

Bemærk, at vi i denne kode har kombineret to forskellige knapkonstanter (vbRetryCancel + vbMsgBoxHelpButton). Den første del viser knapperne Prøv igen og Annuller, og den anden del viser knappen Hjælp.

MsgBox -knapper - Indstilling af en standardknap

Du kan bruge konstanten ‘vbDefaultButton1’ til at indstille den første knap som standard. Det betyder, at knappen allerede er valgt, og hvis du trykker på enter, udfører den knappen.

Nedenfor er koden, der sætter den anden knap ('Nej' -knappen) som standard.

Sub MsgBoxOKCancel () MsgBox "Hvad vil du gøre derefter?", VbYesNoCancel + vbDefaultButton2 End Sub

I de fleste tilfælde er knappen til venstre mest standardknappen. Du kan vælge andre knapper ved hjælp af vbDefaultButton2, vbDefaultButton3 og vbDefaultButton4.

Excel VBA MsgBox ikonkonstanter (eksempler)

Bortset fra knapperne kan du også tilpasse de ikoner, der vises i dialogboksen MsgBox. Du kan f.eks. Have et rødt kritisk ikon eller et blåt informationsikon.

Nedenfor er en tabel, der viser koden, der viser det tilsvarende ikon.

Ikon konstant Beskrivelse
vbKritisk Viser ikonet for kritisk besked
vbSpørgsmål Viser spørgsmålikonet
vbUdrop Viser advarselsikonet
vbInformation Viser informationsikonet

MsgBox Ikoner - Kritisk

Hvis du vil vise et kritisk ikon i din MsgBox, skal du bruge vbCritical -konstanten. Du kan bruge dette sammen med andre knapkonstanter (ved at sætte et + -tegn mellem koderne).

For eksempel er der en kode, der viser standard OK -knappen med et kritisk ikon.

Sub MsgBoxCriticalIcon () MsgBox "Dette er en prøveboks", vbCritical End Sub

Hvis du vil vise det kritiske ikon med Ja og Nej -knapper, skal du bruge følgende kode:

Sub MsgBoxCriticalIcon () MsgBox "Dette er en prøveboks", vbYesNo + vbCritical End Sub

MsgBox Icons - Spørgsmål

Hvis du vil vise et kritisk ikon i din MsgBox, skal du bruge vbQuestion -konstanten.

Sub MsgBoxQuestionIcon () MsgBox "Dette er en prøveboks", vbYesNo + vbQuestion End Sub

MsgBox -ikoner - udråb

Hvis du vil vise et udråbningsikon i din MsgBox, skal du bruge vbExclamation -konstanten.

Sub MsgBoxExclamationIcon () MsgBox "Dette er en prøveboks", vbYesNo + vbExclamation End Sub

MsgBox Ikoner - Information

Hvis du vil vise et informationsikon i din MsgBox, skal du bruge konstanten vbInformation.

Sub MsgBoxInformationIcon () MsgBox "Dette er en prøveboks", vbYesNo + vbInformation End Sub

Tilpasning af titel og prompt i MsgBox

Når du bruger MsgBox, kan du tilpasse titlen og promptbeskederne.

Indtil videre har det eksempel, vi har set, brugt Microsoft Excel som titlen. Hvis du ikke angiver titelargumentet, bruger MsgBox automatisk titlen på applikationen (som har været Microsoft Excel i dette tilfælde).

Du kan tilpasse titlen ved at angive den i koden som vist herunder:

Sub MsgBoxInformationIcon () MsgBox "Vil du fortsætte?", VbYesNo + vbQuestion, "Step 1 of 3" End Sub

På samme måde kan du også tilpasse promptbeskeden.

Du kan også tilføje linjeskift i promptbeskeden.

I nedenstående kode har jeg tilføjet et linjeskift ved hjælp af 'vbNewLine'.

Sub MsgBoxInformationIcon () MsgBox "Vil du fortsætte?" & vbNewLine & "Click Yes to Continue", vbYesNo + vbQuestion, "Step 1 of 3" End Sub

Du kan også bruge vognreturtegnet - Chr (13) - eller liniefeed - Chr (10) til at indsætte en ny linje i promptbeskeden.

Bemærk, at du kun kan tilføje en ny linje til promptbeskeden og ikke titlen.

Tildeling af MsgBox -værdi til en variabel

Hidtil har vi set eksemplerne, hvor vi har oprettet meddelelsesbokse og tilpasset knapperne, ikonerne, titlen og prompten.

At klikke på en knap har imidlertid ikke gjort noget.

Med MsgBox -funktionen i Excel kan du beslutte, hvad du vil gøre, når en bruger klikker på en bestemt knap. Og dette er muligt, da hver knap har en værdi knyttet til sig.

Så hvis jeg klikker på knappen Ja, returnerer funktionen MsgBox en værdi (6 eller konstant vbYes), som jeg kan bruge i min kode. På samme måde vælger brugeren knappen Nej, den returnerer en anden værdi ((7 eller konstant vbNo)), som jeg kan bruge i koden.

Nedenfor er en tabel, der viser de nøjagtige værdier og konstanten returneret af funktionen MsgBox. Du behøver ikke at huske disse, bare vær opmærksom på det, og du kan bruge de konstanter, der er lettere at bruge.

Knap klikket Konstant Værdi
Okay vbOk 1
Afbestille vbCancel 2
Abort vbAbort 3
Prøve igen vbRetry 4
Ignorere vbIgnore 5
Ja vbJa 6
Ingen vbNej 7

Lad os nu se, hvordan vi kan styre VBA -makrokoden baseret på hvilken knap en bruger klikker på.

I nedenstående kode, hvis brugeren klikker på Ja, viser den meddelelsen "Du har klikket på Ja", og hvis brugeren klikker på Nej, vises "Du har klikket på Nej".

Sub MsgBoxInformationIcon () Resultat = MsgBox ("Vil du fortsætte?", VbYesNo + vbQuestion) Hvis Resultat = vbJa Så klikker MsgBox "Ja" Ellers: MsgBox "Du klikker Nej" Afslut hvis Afslut Sub

I ovenstående kode har jeg tildelt værdien af ​​MsgBox -funktionen til resultatvariablen. Når du klikker på knappen Ja, får resultatvariablen vbYes -konstanten (eller tallet 6), og når du klikker på Nej, får resultatvariablen vbNo -konstanten (eller tallet 7).

Derefter brugte jeg en If Then Else -konstruktion til at kontrollere, om resultatvariablen indeholder værdien vbYes. Hvis det gør det, viser det prompten "Du klikket på Ja", ellers viser det "Du klikker på Nej".

Du kan bruge det samme koncept til at køre en kode, hvis en bruger klikker på Ja og forlader suben, når han/hun klikker på Nej.

Bemærk: Når du tildeler MsgBox -output til en variabel, skal du sætte argumenterne for MsgBox -funktionen i parentes. For eksempel i linjen Resultat = MsgBox ("Vil du fortsætte?", VbYesNo + vbQuestion), kan du se, at argumenterne er inden for parentes.

Hvis du vil grave yderligere ind i meddelelsesboksfunktionen, er her det officielle dokument om det.

Du kan også lide følgende Excel VBA -vejledninger:

  • Excel VBA -splitfunktion.
  • Excel VBA InStr -funktion.
  • Arbejde med celler og områder i Excel VBA.
  • Arbejde med regneark i VBA.
  • Arbejde med projektmapper i VBA.
  • Brug af loops i Excel VBA.
  • Forstå Excel VBA -datatyper (variabler og konstanter)
  • Sådan oprettes og bruges personlig makro -projektmappe i Excel.
  • Nyttige eksempler på makrokode i Excel.
  • Brug af For Next Loop i Excel VBA.
  • Excel VBA Events - En nem (og komplet) vejledning.
  • Sådan køres en makro i Excel-En komplet trin-for-trin vejledning.
  • Sådan oprettes og bruges et Excel-tilføjelsesprogram.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave