Ja Nej Beskedboks (Msgbox) - Eksempler på VBA -kode

Denne vejledning vil dække, hvordan du bruger VBA MsgBox -funktionen til at vise meddelelsesbokse til brugere (herunder YesNo Messagebox). Du er muligvis også interesseret i vores artikel om InputBoxes.

VBA MsgBox -funktion

I VBA er det let at vise en simpel MsgBox:

1 MsgBox "Dette er en meddelelsesboks"

Du kan dog gøre meget mere end at vise en simpel OK -meddelelsesboks. Lad os hurtigt se på kompliceret eksempel, før vi dykker ned i specifikationer …

VBA Ja Ingen meddelelsesboks

Nedenfor opretter vi en meddelelsesboks med:

  • En titel "Beskedboks -titel" og prompt "Tekst"
  • Et spørgsmålstegnikon
  • Ja / Nej muligheder i stedet for et simpelt “OK”
  • Standardknap = 'Nej'
123 Dim svar som heltalanswer = MsgBox ("Text", vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title")

Beskedboksen returnerer vbYes eller vbNo afhængigt af brugerens valg. Du kan derefter udføre forskellige handlinger baseret på valget:

12345 Hvis svar = vbJa SåMsgBox "Ja"AndetMsgBox "Nej"Afslut Hvis

I det næste afsnit viser vi dig alle de tilgængelige muligheder, når du opretter meddelelsesbokse. Derefter introducerer vi dig til syntaksen for MsgBox -funktionen og til sidst går vi over andre meddelelsesbokseksempler.

Indstillinger for VBA -meddelelsesboks

Tag et kig på billedet herunder. Her vil du se (næsten) alle de tilgængelige muligheder for dig, når du opretter meddelelsesbokse. Vær opmærksom på ikonerne og de forskellige knapper.

Dette er et skærmbillede af "MessageBox Builder" fra vores Premium VBA-tilføjelse: AutoMacro. Med MessageBox Builder kan du hurtigt designe din ønskede meddelelsesboks og indsætte koden i dit kodemodul. Det indeholder også mange andre kodebyggere, et omfattende VBA -kodebibliotek og et sortiment af kodningsværktøjer. Det er et must-have for enhver VBA-udvikler.

Syntaks for MsgBox -funktion

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

prompt (påkrævet) - Dette er den primære tekstboks.

knapper - Vælg hvilke knapper der skal vises. Hvis den udelades, skal du bare 'OK'. Her kan du også angive, hvilket ikon der skal vises, og standardknappen.

titel - Titlen øverst i meddelelsesboksen. Hvis den udelades, vises navnet på den aktuelle applikation (f.eks. Microsoft Excel).

hjælpefil - Angiv en hjælpefil, der kan tilgås, når brugeren klikker på knappen 'Hjælp'. Hvis det er angivet, skal du også tilføje kontekst (nedenfor)

sammenhæng - Numerisk udtryk, der repræsenterer Hjælp -kontekstnummeret, der er tildelt det relevante hjælpemne.

Du kan sandsynligvis ignorere hjælpefilen og kontekstargumenterne. Jeg har aldrig set dem brugt.

Tilpas meddelelsesboksens titel og prompt

MsgBox -funktionen giver dig mulighed for at tilpasse titlen og hurtige meddelelser sådan:

1 Msgbox "Prompt" ,, "Title"

Et andet eksempel:

123 Sub MsgBoxPromptTitle ()MsgBox "Trin 1 fuldført. Klik på OK for at køre trin 2." ,, "Trin 1 af 5"Afslut Sub

Vigtig! Du skal huske at omgive din tekst med citater.

MessageBox LineBreaks

Du kan også tilføje linjeskift til din meddelelsesboks med "vbNewLine".

123 Sub MsgBoxPromptTitle_NewLine ()MsgBox "Trin 1 fuldført." & vbNewLine & "Klik på OK for at køre trin 2.", "Trin 1 af 5"Afslut Sub

Bemærk, at vi bruger symbolet & til at forbinde tekst sammen. Du kan lære mere om at bruge & med tekst og andre muligheder for at indsætte liniebrud i vores artikel om sammenføjning af tekst.

MsgBox -ikoner

VBA giver dig mulighed for at tilføje et af fire præbyggede ikoner til dine meddelelsesbokse:

Ikon konstant Ikon
vbInformation
vbKritisk
vbSpørgsmål
vbUdrop

Ikon -konstanten skal placeres i knapargumentet:

123 Sub MsgBoxQuestionIcon ()MsgBox "Spørgeeksempel", vbQuestionAfslut Sub

Dette genererer standard 'OK' meddelelsesboks med ikonet Spørgsmål:

Læg mærke til, når du skriver, viser VBA Editor dig de tilgængelige muligheder:

Dette er nyttigt, fordi du ikke behøver at huske den nøjagtige syntaks eller navne på ikoner eller knapper.

Nu vil vi demonstrere hvert meddelelsesboksikon:

MsgBox Ikoner - Information

123 Sub MsgBoxInformationIcon ()MsgBox "Information Eksempel", vbInformationAfslut Sub

MsgBox Ikoner - Kritisk

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

MsgBox Icons - Spørgsmål

123 Sub MsgBoxQuestionIcon ()MsgBox "Spørgeeksempel", vbQuestionAfslut Sub

MsgBox Ikoner - Udråb

123 Sub MsgBoxExclamationIcon ()MsgBox "Exclamation Eksempel", vbExclamationAfslut Sub

Nedenfor vil vi tale om at generere meddelelsesbokse med forskellige knaplayouts. Hvis du vælger en anden type meddelelsesboks, skal du tilføje ikonet efter knapperne ved hjælp af et “+”:

123 Sub MsgBoxQuestionIcon ()MsgBox "Vil du fortsætte?", VbOKCancel + vbQuestionAfslut Sub

MsgBox -variabler

Indtil videre har vi primært arbejdet med standard 'OK' meddelelsesboks. Meddelelsesboksen OK har kun en mulighed: Ved at trykke på ‘OK’ kan koden fortsætte. Du kan dog også angive andre knapgrupperinger: OK / Annuller, Ja / Nej osv.

I så fald vil du gerne udføre forskellige handlinger baseret på hvilken knap der trykkes på. Lad os se på et eksempel.

Her er meddelelsesboksen, vi vil generere:

Dette er hele koden (vi nedbryder den næste):

123456789101112 Sub MsgBoxVariable ()Dim svar som heltalanswer = MsgBox ("Vil du fortsætte?", vbQuestion + vbYesNo)Hvis svar = vbJa SåMsgBox "Ja"AndetMsgBox "Nej"Afslut HvisAfslut Sub

Først tildeler vi messagebox -output til en heltalsvariabel.

123 Dim svar som heltalanswer = MsgBox ("Vil du fortsætte?", vbQuestion + vbYesNo)

Dernæst bruger vi en If-Else til at bestemme, hvad de skal gøre baseret på hvilken knap der trykkes på:

12345 Hvis svar = vbJa SåMsgBox "Ja"AndetMsgBox "Nej"Afslut Hvis

Funktionen MsgBox returnerer en heltalværdi (mellem 1-7), så vi definerer variablen som en heltalstype. Men i stedet for at henvise til heltalet kan du henvise til en konstant (f.eks. VbOK, vbCancel osv.). Se på denne tabel for at se alle mulighederne:

Knap 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

Nu vil vi demonstrere hver knapgruppering:

OK meddelelsesboks - kun vbOK

Dette er standard VBA -meddelelsesboks.

123456 Sub MsgBox_OKOnly ()Dim svar som heltalsvar = MsgBox ("OKOnly eksempel", vbOKOnly)Afslut Sub

OK Annuller meddelelsesboks - vbOKCancel

123456789101112 Sub MsgBox_OKCancel ()Dim svar som heltalanswer = MsgBox ("OK Annuller eksempel", vbOKCancel)Hvis svar = vbOK SåMsgBox "OK"AndetMsgBox "Annuller"Afslut HvisAfslut Sub

Ja Nej Beskedboks - vbJa Nej

123456789101112 Sub MsgBox_YesNo ()Dim svar som heltalsvar = MsgBox ("Ja nej eksempel", vbYesNo)Hvis svar = vbJa SåMsgBox "Ja"AndetMsgBox "Nej"Afslut HvisAfslut Sub

Ja Nej Annuller meddelelsesboks - vbYesNoCancel

1234567891011121314 Sub MsgBox_YesNoCancel ()Dim svar som heltalanswer = MsgBox ("Ja Nej Annuller eksempel", vbYesNoCancel)Hvis svar = vbJa SåMsgBox "Ja"ElseIf svar = vbNo SåMsgBox "Nej"AndetMsgBox "Annuller"Afslut HvisAfslut Sub

Abort Retry Ignore Message Box - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore ()Dim svar som heltalanswer = MsgBox ("Afbryd prøve igen, ignorer eksempel", vbAbortRetryIgnore)Hvis svar = vbAbort SåMsgBox "Abort"ElseIf svar = vbRetry SåMsgBox "Prøv igen"AndetMsgBox "Ignorer"Afslut HvisAfslut Sub

Prøv igen Annuller meddelelsesboks - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel ()Dim svar som heltalanswer = MsgBox ("Prøv igen Annuller eksempel", vbRetryCancel)Hvis svar = vbRetry SåMsgBox "Prøv igen"AndetMsgBox "Annuller"Afslut HvisAfslut Sub

VBA MessageBox -eksempler

Meddelelsesboksbekræftelse, før du kører makro

Denne kode viser en Ja Nej -meddelelsesboks, før du kalder en makro. Hvis der klikkes på Ja, kaldes makroen, hvis der klikkes på Nej, kører makroen ikke.

12345678 Sub Msgbox_BeforeRunning ()Dim svar som heltalanswer = MsgBox ("Vil du køre Macro1?", vbQuestion + vbYesNo)Hvis svar = vbJa, ring derefter til Makro1Afslut Sub

Ja / Nej Beskedboks - Afslut Sub

Her vil vi med brugeren bekræfte, om vi vil fortsætte med at køre en makro. Hvis der klikkes på Nej, forlader koden suben, ellers fortsætter proceduren.

12345678910 Sub Msgbox_BeforeRunning ()Dim svar som heltalanswer = MsgBox ("Vil du fortsætte?", vbQuestion + vbYesNo)Hvis svar = vbNo Afslut derefter Sub'Nogle koderAfslut Sub

VBA -meddelelsesboks i Access VBA

Alle ovenstående eksempler fungerer nøjagtig det samme i Access VBA som i Excel VBA.

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

wave wave wave wave wave