Die VBA InputBox-Funktion ist nützlich, um eine einzelne Information zu erhalten, die der Benutzer in Excle 2016 eingegeben hat. Diese Information kann ein Wert, eine Textzeichenfolge oder sogar eine Bereichsadresse sein. Dies ist eine gute Alternative zum Entwickeln einer UserForm, wenn Sie nur einen Wert abrufen müssen.
InputBox-Syntax
Hier ist eine vereinfachte Version der Syntax der InputBox-Funktion:
InputBox(prompt[, title][, default])
Die InputBox-Funktion akzeptiert die hier aufgeführten Argumente.
Streit |
Was es beeinflusst |
Prompt |
Der im Eingabefeld angezeigte Text |
Titel |
Der in der Titelleiste des Eingabefelds angezeigte Text
(optional) |
Standard |
Der Standardwert für die Benutzereingabe (optional) |
Ein InputBox-Beispiel
Hier ist eine Anweisung, die zeigt, wie Sie die InputBox-Funktion verwenden können:
TheName = InputBox("Wie ist Ihr Name?", "Grüße")
Wenn Sie diese VBA-Anweisung ausführen, zeigt Excel dieses Dialogfeld an. Beachten Sie, dass dieses Beispiel nur die ersten beiden Argumente verwendet und keinen Standardwert bereitstellt. Wenn der Benutzer einen Wert eingibt und auf OK klickt, weist der Code den Wert der Variablen TheName zu.

Die Funktion InputBox zeigt dieses Dialogfeld an.
Im folgenden Beispiel wird das dritte Argument verwendet und ein Standardwert bereitgestellt. Der Standardwert ist der von Excel gespeicherte Benutzername (die UserName-Eigenschaft des Anwendungsobjekts).
Unter GetName()
Dim TheName As String
TheName = InputBox("Wie ist Ihr Name?", _
„Grüße“, Application.UserName)
End Sub
Die InputBox zeigt immer eine Schaltfläche Abbrechen an. Wenn der Benutzer auf Abbrechen klickt, gibt die InputBox-Funktion eine leere Zeichenfolge zurück.
Die InputBox-Funktion von VBA gibt immer eine Zeichenfolge zurück. Wenn Sie also einen Wert abrufen müssen, muss Ihr Code zusätzliche Überprüfungen durchführen. Im folgenden Beispiel wird die InputBox-Funktion verwendet, um eine Zahl abzurufen. Es verwendet die Funktion IsNumeric, um zu überprüfen, ob die Zeichenfolge eine Zahl ist. Wenn die Zeichenfolge eine Zahl enthält, ist alles in Ordnung. Wenn die Eingabe des Benutzers nicht als Zahl interpretiert werden kann, zeigt der Code ein Meldungsfeld an.
Unter AddSheets()
Dim Prompt als String
Untertitel als Zeichenfolge abblenden
Dim DefValue As Long
NumSheets als String dimmen
Eingabeaufforderung = "Wie viele Blätter möchten Sie hinzufügen?"
Bildunterschrift = „Sag mir…“
DefWert = 1
NumSheets = InputBox(Prompt, Caption, DefValue)
Wenn NumSheets = „“ dann Beenden Sie Sub 'Canceled
If IsNumeric(NumSheets) Then
If NumSheets > 0 Then Sheets.Add Count:=NumSheets
Anders
MsgBox „Ungültige Nummer“
Ende Wenn
End Sub
Sehen Sie sich das Dialogfeld an, das diese Routine erzeugt.

Ein weiteres Beispiel für die Verwendung der InputBox-Funktion.
Eine andere Art von InputBox
Die hier präsentierten Informationen gelten für die InputBox-Funktion von VBA. Microsoft scheint Verwirrung zu lieben, daher haben Sie auch Zugriff auf die InputBox- Methode , die eine Methode des Application-Objekts ist.
Ein großer Vorteil der Verwendung der Application InputBox-Methode besteht darin, dass Ihr Code zu einer Bereichsauswahl auffordern kann. Der Benutzer kann dann den Bereich im Arbeitsblatt auswählen, indem er die Zellen hervorhebt. Hier ist ein kurzes Beispiel, das den Benutzer auffordert, einen Bereich auszuwählen:
Unter GetRange()
Dim Rng As Range
Bei Fehler Fortsetzen als nächstes
Set Rng = Application.InputBox _
(Eingabeaufforderung:=“Geben Sie einen Bereich an:“, Typ:=8)
Wenn Rng nichts ist, dann beende Sub
MsgBox „Sie haben den Bereich ausgewählt“ & Rng.Address
End Sub
So sieht es aus.

Verwenden der Application InputBox-Methode zum Abrufen eines Bereichs.
In diesem einfachen Beispiel teilt der Code dem Benutzer die Adresse des ausgewählten Bereichs mit. Im wirklichen Leben würde Ihr Code mit dem ausgewählten Bereich tatsächlich etwas Nützliches tun. Das Schöne an diesem Beispiel ist, dass sich Excel um die Fehlerbehandlung kümmert. Wenn Sie etwas eingeben, das kein Bereich ist, informiert Excel Sie darüber und lässt Sie es erneut versuchen.
Die Application.InputBox-Methode ähnelt der InputBox-Funktion von VBA, weist jedoch auch einige Unterschiede auf. Ausführliche Informationen finden Sie im Hilfesystem.