Excel VBA MsgBox (meldingsboks) - Alt du trenger å vite!

I Excel VBA kan du bruke MsgBox -funksjonen til å vise en meldingsboks (som vist nedenfor):

En MsgBox er ikke annet enn en dialogboks som du kan bruke til å informere brukerne dine ved å vise en egendefinert melding eller få noen grunnleggende innganger (for eksempel Ja/Nei eller OK/Avbryt).

Mens dialogboksen MsgBox vises, stoppes VBA -koden. Du må klikke på en av knappene i MsgBox for å kjøre den gjenværende VBA -koden.

Merk: I denne opplæringen bruker jeg ordmeldingsboksen og MsgBox om hverandre. Når du arbeider med Excel VBA, må du alltid bruke MsgBox.

Anatomi av en VBA MsgBox i Excel

En meldingsboks har følgende deler:

  1. Tittel: Dette brukes vanligvis til å vise hva meldingsboksen handler om. Hvis du ikke angir noe, viser det programnavnet - som er Microsoft Excel i dette tilfellet.
  2. Spør: Dette er meldingen du vil vise. Du kan bruke denne plassen til å skrive et par linjer eller til og med vise tabeller/data her.
  3. Knapp (er): Selv om OK er standardknappen, kan du tilpasse den til å vise knapper som Ja/Nei, Ja/Nei/Avbryt, Prøv på nytt/Ignorer, etc.
  4. Lukk -ikon: Du kan lukke meldingsboksen ved å klikke på lukkeikonet.

Syntaks for VBA MsgBox -funksjonen

Som jeg nevnte, er MsgBox en funksjon og har en syntaks som ligner på andre VBA -funksjoner.

MsgBox (ledetekst [, knapper] [, tittel] [, hjelpefil, kontekst])

  • spør - Dette er et påkrevd argument. Den viser meldingen du ser i MsgBox. I vårt eksempel er teksten "Dette er et eksempel på MsgBox" "ledeteksten". Du kan bruke opptil 1024 tegn i ledeteksten, og kan også bruke den til å vise verdiene til variabler. Hvis du vil vise en melding som har flere linjer, kan du også gjøre det (mer om dette senere i denne opplæringen).
  • [knapper] - Det bestemmer hvilke knapper og ikoner som vises i MsgBox. For eksempel, hvis jeg bruker vbOkOnly, viser den bare OK -knappen, og hvis jeg bruker vbOKCancel, viser den både OK- og Avbryt -knappene. Jeg vil dekke forskjellige typer knapper senere i denne opplæringen.
  • [tittel] - Her kan du angi hvilken tekst du vil ha i meldingsdialogboksen. Dette vises i tittellinjen i MsgBox. Hvis du ikke angir noe, vises navnet på applikasjonen.
  • [hjelpefil] - Du kan angi en hjelpefil som du kan få tilgang til når en bruker klikker på Hjelp -knappen. Hjelpeknappen vises bare når du bruker knappekoden for den. Hvis du bruker en hjelpefil, må du også spesifisere kontekstargumentet.
  • [kontekst] - Det er et numerisk uttrykk som er hjelpekontekstnummeret som er tilordnet det aktuelle hjelpeemnet.

Hvis du er ny på konseptet Msgbox, kan du ignorere [helpfile] og [context] argumentene. Jeg har sjelden sett at disse ble brukt.

Merk: Alle argumentene i parenteser er valgfrie. Bare "prompt" -argumentet er obligatorisk.

Excel VBA MsgBox -knappekonstanter (eksempler)

I denne delen vil jeg dekke de forskjellige knappene du kan bruke med en VBA MsgBox.

Før jeg viser deg VBA -koden for den og hvordan MsgBox ser ut, her er en tabell som viser alle de forskjellige knappekonstantene du kan bruke.

Knapp konstant Beskrivelse
vbOKBare Viser bare OK -knappen
vbOKCancel Viser knappene OK og Avbryt
vbAbortRetryIgnore Viser knappene Avbryt, Prøv igjen og Ignorer
vbJa Nei Viser knappene Ja og Nei
vbYesNoCancel Viser knappene Ja, Nei og Avbryt
vbRetryCancel Viser knappene Prøv igjen og Avbryt
vbMsgBoxHelpButton Viser Hjelp -knappen. For at dette skal fungere, må du bruke hjelp- og kontekstargumentene i MsgBox -funksjonen
vbDefaultButton1 Gjør den første knappen til standard. Du kan endre nummeret for å endre standardknappen. For eksempel gjør vbDefaultButton2 den andre knappen som standard

Merk: Mens du går gjennom eksemplene på å lage forskjellige knapper, kan du lure på hva som er poenget med å ha disse knappene hvis det ikke har noen innvirkning på koden.

Det gjør det! Basert på valget kan du kode det du vil at koden skal gjøre. For eksempel, hvis du velger OK, skal koden fortsette, og hvis du klikker Avbryt, skal koden stoppe. Dette kan gjøres ved å bruke variabler og tilordne verdien til meldingsboksen til en variabel. Vi vil dekke dette i de senere delene av denne opplæringen.

La oss nå se på noen eksempler på hvordan de forskjellige knappene kan vises i en MsgBox og hvordan det ser ut.

MsgBox -knapper - vbOKOnly (standard)

Hvis du bare bruker ledeteksten og ikke angir noen av argumentene, får du standard meldingsboks som vist nedenfor:

Nedenfor er koden som vil gi denne meldingsboksen:

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

Vær oppmerksom på at tekststrengen må være i doble anførselstegn.

Du kan også bruke knappen konstant vbOKOnly, men selv om du ikke angir noe, er det tatt som standard.

MsgBox -knapper - OK & Avbryt

Hvis du bare vil vise OK og Avbryt -knappen, må du bruke konstanten vbOKCancel.

Sub MsgBoxOKCancel () MsgBox "Vil du fortsette?", VbOKCancel End Sub

MsgBox -knapper - Avbryt, Prøv på nytt og Ignorer

Du kan bruke konstanten ‘vbAbortRetryIgnore’ til å vise knappene Avbryt, Prøv på nytt og Ignorer.

Sub MsgBoxAbortRetryIgnore () MsgBox "Hva vil du gjøre?", VbAbortRetryIgnore End Sub

MsgBox -knapper - Ja og Nei

Du kan bruke konstanten ‘vbYesNo’ til å vise Ja og Nei -knappene.

Sub MsgBoxYesNo () MsgBox "Should we stop?", VbYesNo End Sub

MsgBox -knapper - Ja, Nei og Avbryt

Du kan bruke konstanten ‘vbYesNoCancel’ til å vise knappene Ja, Nei og Avbryt.

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

MsgBox -knapper - Prøv på nytt og avbryt

Du kan bruke konstanten ‘vbRetryCancel’ til å vise knappene Prøv igjen og Avbryt.

Sub MsgBoxRetryCancel () MsgBox "Hva vil du gjøre videre?", VbRetryCancel End Sub

MsgBox -knapper - Hjelp -knapp

Du kan bruke konstanten ‘vbMsgBoxHelpButton’ for å vise hjelpeknappen. Du kan bruke den med andre knappekonstanter.

Sub MsgBoxRetryHelp () MsgBox "Hva vil du gjøre videre?", VbRetryCancel + vbMsgBoxHelpButton End Sub

Vær oppmerksom på at i denne koden har vi kombinert to forskjellige knappekonstanter (vbRetryCancel + vbMsgBoxHelpButton). Den første delen viser knappene Prøv igjen og Avbryt, og den andre delen viser Hjelp -knappen.

MsgBox -knapper - Angi en standardknapp

Du kan bruke konstanten ‘vbDefaultButton1’ til å angi den første knappen som standard. Dette betyr at knappen allerede er valgt, og hvis du trykker enter, kjører den knappen.

Nedenfor er koden som vil sette den andre knappen ("Nei" -knappen) som standard.

Sub MsgBoxOKCancel () MsgBox "Hva vil du gjøre videre?", VbYesNoCancel + vbDefaultButton2 End Sub

I de fleste tilfeller er knappen til venstre mest standardknappen. Du kan velge andre knapper ved hjelp av vbDefaultButton2, vbDefaultButton3 og vbDefaultButton4.

Excel VBA MsgBox Icon Constants (eksempler)

Bortsett fra knappene kan du også tilpasse ikonene som vises i dialogboksen MsgBox. For eksempel kan du ha et rødt kritisk ikon eller et blått informasjonsikon.

Nedenfor er en tabell som viser koden som viser det tilhørende ikonet.

Ikon konstant Beskrivelse
vbKritisk Viser ikonet for kritisk melding
vbSpørsmål Viser spørsmålikonet
vbUtrop Viser advarselsikonet
vbInformasjon Viser informasjonsikonet

MsgBox Ikoner - Kritisk

Hvis du vil vise et kritisk ikon i MsgBox, bruker du vbCritical -konstanten. Du kan bruke dette sammen med andre knappekonstanter (ved å sette et + -tegn mellom kodene).

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

Sub MsgBoxCriticalIcon () MsgBox "This is a sample box", vbCritical End Sub

Hvis du vil vise det kritiske ikonet med Ja og Nei -knappene, bruker du følgende kode:

Sub MsgBoxCriticalIcon () MsgBox "This is a sample box", vbYesNo + vbCritical End Sub

MsgBox Icons - Spørsmål

Hvis du vil vise et kritisk ikon i MsgBox, bruker du vbQuestion -konstanten.

Sub MsgBoxQuestionIcon () MsgBox "This is a sample box", vbYesNo + vbQuestion End Sub

MsgBox Icons - Utrop

Hvis du vil vise et utropstegn i MsgBox, bruker du vbExclamation -konstanten.

Sub MsgBoxExclamationIcon () MsgBox "This is a sample box", vbYesNo + vbExclamation End Sub

MsgBox Ikoner - Informasjon

Hvis du vil vise et informasjonsikon i MsgBox, bruker du vbInformation -konstanten.

Sub MsgBoxInformationIcon () MsgBox "This is a sample box", vbYesNo + vbInformation End Sub

Tilpasse tittel og ledetekst i MsgBox

Når du bruker MsgBox, kan du tilpasse tittelen og meldingene.

Så langt har eksemplet vi har sett brukt Microsoft Excel som tittel. Hvis du ikke spesifiserer tittelargumentet, bruker MsgBox automatisk tittelen på programmet (som har vært Microsoft Excel i dette tilfellet).

Du kan tilpasse tittelen ved å spesifisere den i koden som vist nedenfor:

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

På samme måte kan du også tilpasse ledeteksten.

Du kan også legge til linjeskift i ledeteksten.

I koden nedenfor har jeg lagt til et linjeskift med ‘vbNewLine’.

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

Du kan også bruke vognreturtegnet - Chr (13) - eller linjemating - Chr (10) for å sette inn en ny linje i ledeteksten.

Vær oppmerksom på at du bare kan legge til en ny linje i ledeteksten og ikke tittelen.

Tilordne MsgBox -verdi til en variabel

Så langt har vi sett eksemplene der vi har opprettet meldingsbokser og tilpasset knappene, ikonene, tittelen og ledeteksten.

Å klikke på en knapp har imidlertid ikke gjort noe.

Med MsgBox -funksjonen i Excel kan du bestemme hva du vil gjøre når en bruker klikker på en bestemt knapp. Og dette er mulig ettersom hver knapp har en verdi knyttet til den.

Så hvis jeg klikker på Ja -knappen, returnerer MsgBox -funksjonen en verdi (6 eller konstant vbYes) som jeg kan bruke i koden min. På samme måte velger brukeren Nei -knappen, den returnerer en annen verdi ((7 eller konstant vbNo)) som jeg kan bruke i koden.

Nedenfor er en tabell som viser de eksakte verdiene og konstanten returnert av MsgBox -funksjonen. Du trenger ikke å huske disse, bare vær oppmerksom på det, og du kan bruke konstantene som er enklere å bruke.

Knapp klikket Konstant Verdi
Ok vbOk 1
Avbryt vbCancel 2
Avbryte vbAbort 3
Prøv igjen vbRetry 4
Overse vbIgnore 5
Ja vbJa 6
Nei vbNei 7

La oss nå se hvordan vi kan kontrollere VBA -makrokoden basert på hvilken knapp en bruker klikker på.

I koden nedenfor, hvis brukeren klikker på Ja, viser meldingen "Du klikket Ja", og hvis brukeren klikker Nei, viser den "Du klikket Nei".

Sub MsgBoxInformationIcon () Resultat = MsgBox ("Vil du fortsette?", VbYesNo + vbQuestion) Hvis Resultat = vbJa Så klikket MsgBox "Ja" Ellers: MsgBox "Du klikket Nei" End If End Sub Sub

I koden ovenfor har jeg tilordnet verdien til MsgBox -funksjonen til resultatvariabelen. Når du klikker på Ja -knappen, får resultatvariabelen vbJa -konstanten (eller tallet 6), og når du klikker Nei, får resultatvariabelen vbNo -konstanten (eller tallet 7).

Deretter brukte jeg en If Then Else -konstruksjon for å kontrollere om resultatvariabelen inneholder verdien vbYes. Hvis den gjør det, viser den ledeteksten "Du klikket Ja", ellers viser den "Du klikket Nei".

Du kan bruke det samme konseptet til å kjøre en kode hvis en bruker klikker Ja og avslutter suben når han/hun klikker Nei.

Merk: Når du tilordner MsgBox -utgangen til en variabel, må du sette argumentene for MsgBox -funksjonen i parentes. For eksempel i linjen Resultat = MsgBox ("Vil du fortsette?", VbYesNo + vbQuestion), kan du se at argumentene er innenfor parentes.

Hvis du vil grave mer inn i meldingsboksen, er det offisielle dokumentet om den.

Du kan også like følgende Excel VBA -opplæringsprogrammer:

  • Excel VBA delt funksjon.
  • Excel VBA InStr -funksjon.
  • Arbeider med celler og områder i Excel VBA.
  • Jobber med regneark i VBA.
  • Jobber med arbeidsbøker i VBA.
  • Bruke Loops i Excel VBA.
  • Forstå Excel VBA -datatyper (variabler og konstanter)
  • Hvordan lage og bruke personlig makro arbeidsbok i Excel.
  • Nyttige eksempler på makrokode i Excel.
  • Bruke For Next Loop i Excel VBA.
  • Excel VBA Events - En enkel (og komplett) guide.
  • Hvordan kjøre en makro i Excel-En komplett trinn-for-trinn-guide.
  • Hvordan lage og bruke et Excel-tillegg.
wave wave wave wave wave