Ja Nei Meldingsboks (Msgbox) - Eksempler på VBA -kode

Denne opplæringen vil dekke hvordan du bruker VBA MsgBox -funksjonen til å vise meldingsbokser til brukere (inkludert YesNo Messagebox). Du kan også være interessert i artikkelen vår om InputBoxes.

VBA MsgBox -funksjon

I VBA er det enkelt å vise en enkel MsgBox:

1 MsgBox "Dette er en meldingsboks"

Du kan imidlertid gjøre mye mer enn å vise en enkel OK meldingsboks. La oss raskt se på et komplisert eksempel før vi dykker ned i detaljer …

VBA Ja Ingen meldingsboks

Nedenfor lager vi en meldingsboks med:

  • En tittel "Message Box Title" og spørsmål "Text"
  • Et spørsmålstegnikon
  • Ja / Nei alternativer i stedet for en enkel "OK"
  • Standardknapp = 'Nei'
123 Dim svar som heltallanswer = MsgBox ("Text", vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title")

Meldingsboksen returnerer vbYes eller vbNo avhengig av brukerens valg. Du kan deretter utføre forskjellige handlinger basert på valget:

12345 Hvis svar = vbJa DaMsgBox "Ja"EllersMsgBox "Nei"Slutt om

I den neste delen viser vi deg alle tilgjengelige alternativer når du oppretter meldingsbokser. Deretter vil vi introdusere deg for syntaksen til MsgBox -funksjonen og til slutt gå over andre meldingsbokseksempler.

Alternativer for VBA -meldingsboks

Ta en titt på bildet nedenfor. Her vil du se (nesten) alle alternativene som er tilgjengelige for deg når du oppretter meldingsbokser. Legg merke til ikonene og de forskjellige knappene.

Dette er et skjermbilde av "MessageBox Builder" fra vårt Premium VBA-tillegg: AutoMacro. Med MessageBox Builder kan du raskt designe ønsket meldingsboks og sette inn koden i kodemodulen. Den inneholder også mange andre kodebyggere, et omfattende VBA -kodebibliotek og et utvalg kodingsverktøy. Det er et must for enhver VBA-utvikler.

Syntaks for MsgBox -funksjonen

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

ledetekst (påkrevd) - Dette er teksten i hovedmeldingsboksen.

knappene - Velg hvilke knapper som skal vises. Hvis du utelater det, "OK". Her kan du også angi hvilket ikon som skal vises og standardknappen.

tittel - Tittelen øverst i meldingsboksen. Hvis den utelates, vises navnet på den gjeldende applikasjonen (f.eks. Microsoft Excel).

hjelpefil - Spesifiser hjelpefil som kan nås når brukeren klikker på "Hjelp" -knappen. Hvis spesifisert, må du også legge til kontekst (nedenfor)

kontekst - Numerisk uttrykk som representerer Hjelp -kontekstnummeret som er tilordnet det aktuelle hjelpeemnet.

Du kan sannsynligvis ignorere hjelpefilen og kontekstargumentene. Jeg har aldri sett dem brukt.

Tilpass meldingstittel og spørsmål

MsgBox -funksjonen lar deg tilpasse tittelen og meldingene slik:

1 Msgbox "Spør", "Tittel"

Et annet eksempel:

123 Sub MsgBoxPromptTitle ()MsgBox "Trinn 1 fullført. Klikk OK for å kjøre trinn 2." ,, "Trinn 1 av 5"Slutt Sub

Viktig! Du må huske å omgi teksten med sitater.

MessageBox LineBreaks

Du kan også legge til linjeskift i meldingsboksen din med "vbNewLine".

123 Sub MsgBoxPromptTitle_NewLine ()MsgBox "Trinn 1 fullført." & vbNewLine & "Klikk OK for å kjøre trinn 2.",, "Trinn 1 av 5"Slutt Sub

Legg merke til at vi bruker symbolet & for å kombinere tekst. Du kan lære mer om hvordan du bruker & med tekst og andre alternativer for å sette inn linjebrudd i vår artikkel om sammenføyning av tekst.

MsgBox -ikoner

VBA gir deg muligheten til å legge til ett av fire forhåndsbygde ikoner i meldingsboksene dine:

Ikon konstant Ikon
vbInformasjon
vbKritisk
vbSpørsmål
vbUtrop

Ikon -konstanten bør plasseres i knappargumentet:

123 Sub MsgBoxQuestionIcon ()MsgBox "spørsmålseksempel", vbQuestionSlutt Sub

Dette vil generere standard "OK" meldingsboks med spørsmålikonet:

Legg merke til hvordan VBA Editor viser deg alternativene som er tilgjengelige for deg når du skriver:

Dette er nyttig fordi du ikke trenger å huske den eksakte syntaksen eller navnene på ikoner eller knapper.

Nå vil vi demonstrere hvert meldingsboksikon:

MsgBox Ikoner - Informasjon

123 Sub MsgBoxInformationIcon ()MsgBox "Informasjonseksempel", vbInformationSlutt Sub

MsgBox Ikoner - Kritisk

123 Sub MsgBoxCriticalIcon ()MsgBox "Kritisk eksempel", vbCriticalSlutt Sub

MsgBox Icons - Spørsmål

123 Sub MsgBoxQuestionIcon ()MsgBox "spørsmålseksempel", vbQuestionSlutt Sub

MsgBox Icons - Utrop

123 Sub MsgBoxExclamationIcon ()MsgBox "Utropseksempel", vbExclamationSlutt Sub

Nedenfor vil vi snakke om å generere meldingsbokser med forskjellige knappelayouter. Hvis du velger en annen meldingstype, må du legge til ikonet etter knappene med en "+":

123 Sub MsgBoxQuestionIcon ()MsgBox "Vil du fortsette?", VbOKCancel + vbQuestionSlutt Sub

MsgBox -variabler

Så langt har vi hovedsakelig jobbet med standard "OK" meldingsboks. OK -meldingsboksen har bare ett alternativ: Ved å trykke ‘OK’ kan koden fortsette. Du kan imidlertid også angi andre knappegrupper: OK / Avbryt, Ja / Nei, etc.

I så fall vil du utføre forskjellige handlinger basert på hvilken knapp som trykkes. La oss se på et eksempel.

Her er meldingsboksen vi vil generere:

Dette er hele koden (vi vil bryte den ned neste):

123456789101112 Sub MsgBoxVariable ()Dim svar som heltallanswer = MsgBox ("Vil du fortsette?", vbQuestion + vbYesNo)Hvis svar = vbJa DaMsgBox "Ja"EllersMsgBox "Nei"Slutt omSlutt Sub

Først tilordner vi meldingsboksutgangen til en heltallsvariabel.

123 Dim svar som heltallanswer = MsgBox ("Vil du fortsette?", vbQuestion + vbYesNo)

Deretter bruker vi en If-Else for å bestemme hva vi skal gjøre basert på hvilken knapp som trykkes:

12345 Hvis svar = vbJa DaMsgBox "Ja"EllersMsgBox "Nei"Slutt om

MsgBox-funksjonen returnerer en heltallsverdi (mellom 1-7), så vi definerer variabelen som en heltallstype. I stedet for å referere til heltallstallet kan du imidlertid referere til en konstant (f.eks. VbOK, vbCancel, etc.). Se på denne tabellen for å se alle alternativene:

Knapp 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

Nå vil vi demonstrere hver knappgruppering:

OK Meldingsboks - vbOKOnly

Dette er standard VBA -meldingsboks.

123456 Sub MsgBox_OKOnly ()Dim svar som heltallsvar = MsgBox ("OKOnly eksempel", vbOKOnly)Slutt Sub

OK Avbryt meldingsboks - vbOKCancel

123456789101112 Sub MsgBox_OKCancel ()Dim svar som heltallanswer = MsgBox ("OK Avbryt eksempel", vbOKCancel)Hvis svar = vbOK DaMsgBox "OK"EllersMsgBox "Avbryt"Slutt omSlutt Sub

Ja Nei Meldingsboks - vbJa Nei

123456789101112 Sub MsgBox_YesNo ()Dim svar som heltallsvar = MsgBox ("Ja nei eksempel", vbYesNo)Hvis svar = vbJa DaMsgBox "Ja"EllersMsgBox "Nei"Slutt omSlutt Sub

Ja Nei Avbryt meldingsboks - vbYesNoCancel

1234567891011121314 Sub MsgBox_YesNoCancel ()Dim svar som heltallanswer = MsgBox ("Ja Nei Avbryt eksempel", vbYesNoCancel)Hvis svar = vbJa DaMsgBox "Ja"ElseIf svar = vbNo DaMsgBox "Nei"EllersMsgBox "Avbryt"Slutt omSlutt Sub

Avbryt Prøv på nytt Ignorer meldingsboks - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore ()Dim svar som heltallanswer = MsgBox ("Avbryt prøve Ignorer eksempel", vbAbortRetryIgnore)Hvis svar = vbAbort DaMsgBox "Avbryt"ElseIf svar = vbRetry DaMsgBox "Prøv igjen"EllersMsgBox "Ignorer"Slutt omSlutt Sub

Prøv på nytt Avbryt meldingsboks - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel ()Dim svar som heltallanswer = MsgBox ("Prøv på nytt Avbryt eksempel", vbRetryCancel)Hvis svar = vbRetry DaMsgBox "Prøv igjen"EllersMsgBox "Avbryt"Slutt omSlutt Sub

VBA MessageBox -eksempler

Meldingsboksbekreftelse før du kjører makro

Denne koden viser en Ja Nei meldingsboks før du ringer til en makro. Hvis du klikker på Ja, kalles makroen, og hvis Nei klikkes, kjøres ikke makroen.

12345678 Sub Msgbox_BeforeRunning ()Dim svar som heltallanswer = MsgBox ("Vil du kjøre Macro1?", vbQuestion + vbYesNo)Hvis svar = vbJa, ring deretter Makro1Slutt Sub

Ja / Nei Meldingsboks - Avslutt sub

Her vil vi bekrefte med brukeren om vi skal fortsette å kjøre en makro. Hvis du klikker Nei, vil koden gå ut av suben, ellers fortsetter prosedyren.

12345678910 Sub Msgbox_BeforeRunning ()Dim svar som heltallanswer = MsgBox ("Vil du fortsette?", vbQuestion + vbYesNo)Hvis svar = vbNo, avslutt deretter Sub'Noen koderSlutt Sub

VBA -meldingsboks i Access VBA

Alle eksemplene ovenfor fungerer nøyaktig det samme i Access VBA som i Excel VBA.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave