VBA MsgBox (Ja / Nein)

Excel VBA MsgBox (Ja / Nein)

In VBA können wir mithilfe des Meldungsfelds ein Ja-Nein-Meldungsfeld erstellen, das zum Aufzeichnen von Benutzereingaben basierend auf dem Klicken auf Ja oder Nein verwendet wird. Die Syntax zum Erstellen eines Ja-Nein-Meldungsfelds lautet wie folgt: variable = MsgBox („Text“, vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title") wobei die Variable als Ganzzahl deklariert werden muss.

Bei der VBA-Codierung müssen häufig die Eingabewerte der Benutzer erfasst werden, um eine Aufgabe auszuführen, und eine dieser Aufgaben, um die Ja- oder Nein-Antwort der Benutzer zu erfassen. Mit der VBA MsgBox Ja Nein-Methode können wir den Code schreiben, um im Code fortzufahren.

In bestimmten Situationen müssen wir dem Benutzer möglicherweise die Option Ja oder Nein anzeigen, um seine Antwort zu geben. Basierend auf dieser Antwort können wir den VBA-Code tatsächlich ausführen.

Schauen Sie sich beispielsweise das folgende Bild der MsgBox in VBA an.

Wenn der Benutzer Ja sagt, "wir können Code schreiben, um eine bestimmte Aufgabe auszuführen", und wenn der Benutzer "Nein" sagt, können wir Code schreiben, um einen anderen Satz von Aufgaben auszuführen.

Wie arbeite ich mit MsgBox? Ja / Nein Antwort?

Sie können diese VBA-Nachrichtenbox herunterladen. Ja oder Nein Excel-Vorlage hier - VBA-Nachrichtenbox Ja oder Nein Excel-Vorlage

Beispiel 1 - Kopieren und Einfügen basierend auf der Antwort

Schauen Sie sich zum Beispiel den folgenden Code an.

Code:

 Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Möchten Sie kopieren?", VbQuestion + vbYesNo, "User Repsonse") Wenn AnswerYes = vbYes Then Range ("A1: A2") ("C1") Sonst Bereich ("A1: A2"). Kopierbereich ("E1") End If End Sub 

Erläuterung:

Das Obige hat die Variable als String deklariert, dh

 Dim AnswerYes As String 

In der nächsten Zeile haben wir den Wert über das Meldungsfeld "Möchten Sie kopieren?" Zugewiesen.

AnswerYes = MsgBox ("Möchten Sie kopieren?", VbQuestion + vbYesNo, "User Repsonse")

Jetzt wertet die IF-Anweisung die Antwort aus, die über das Meldungsfeld gegeben wird. Wenn das Ergebnis des Meldungsfelds vbYes ist, wird der Bereich A1 bis A2 kopiert und in Zelle C1 eingefügt .

   Wenn AnswerYes = vbYes, dann Bereich ("A1: A2"). Kopierbereich ("C1")

Wenn die Antwort im Meldungsfeld Nein lautet, wird der Bereich A1 bis A2 kopiert und in Zelle E1 eingefügt.

 Sonst Bereich ("A1: A2"). Kopierbereich ("E1") Ende Wenn 

Ok, ich habe jetzt einige Werte in Zelle A1 und A2 eingegeben.

Jetzt führe ich den Code mit der Taste F5 oder über die Ausführungsoption aus. Ein Meldungsfeld wird vor mir angezeigt und fragt nach meiner Antwort.

Wenn ich auf Ja klicke, wird der Bereich A1 bis A2 kopiert und in die Zelle C1 eingefügt. Jetzt werde ich auf Ja klicken und das Ergebnis sehen.

Es hat also die zugewiesene Aufgabe ausgeführt, wenn die Antwort JA lautet.

Jetzt werde ich wieder den Code ausführen.

Dieses Mal werde ich Nein auswählen und sehen, was passiert.

Ja, es hat die im Code zugewiesene Aufgabe ausgeführt, d. H.

 Sonst Bereich ("A1: A2"). Kopierbereich ("E1")

Beispiel 2 - Ein- und Ausblenden von Blättern basierend auf der Antwort

Der folgende Code blendet alle Blätter außer dem aktiven Blatt aus, wenn die Antwort Ja lautet.

Code:

 Sub HideAll () Dim Antwort als Zeichenfolge Dim Ws als Arbeitsblatt Answer = MsgBox ("Möchten Sie alle ausblenden?", VbQuestion + vbYesNo, "Hide") Wenn Answer = vbYes Dann für jede Ws in ActiveWorkbook.Worksheets If Ws.Name ActiveSheet.Name Then Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Sie haben ausgewählt, die Blätter nicht auszublenden", vbInformation, "No Hide" End If End Sub 

Der obige Code verbirgt alle Arbeitsblätter mit Ausnahme des Blattes, in dem wir uns gerade befinden, wenn die Antwort aus dem Meldungsfeld JA lautet.

Wenn die Antwort aus dem Meldungsfeld NEIN lautet, wird das Meldungsfeld mit der Meldung "Sie haben ausgewählt, die Blätter nicht auszublenden" angezeigt .

In ähnlicher Weise wird das Blatt durch den folgenden Code ausgeblendet, wenn die Antwort Ja lautet.

Code:

 Sub UnHideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Möchten Sie alle einblenden?", VbQuestion + vbYesNo, "Hide") Wenn Answer = vbYes, dann für jedes Ws in ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Sie haben ausgewählt, die Blätter nicht einzublenden", vbInformation, "No Hide" End If End Sub 

Dies funktioniert genauso wie der Code zum Ausblenden von Blättern. Wenn ja, wird er ausgeblendet, wenn nein, wird er nicht ausgeblendet.