VBA-Eingabefenster – Eingaben vom Benutzer erhalten
In this Article
In diesem Tutorial zeigen wir Ihnen, wie Sie mit dem VBA-Eingabefenster Eingaben von einem Benutzer erhalten können.
Mit dem VBA-Eingabefenster können wir den Benutzer auffordern, Informationen einzugeben. Die Informationen können dann in unserem VBA-Code oder in einem Excel-Arbeitsblatt verwendet werden.
Das VBA-Eingabefenster mit einer Variable
Wir können in unserem VBA-Code eine Variable deklarieren, die dann die in das Eingabefenster eingegebenen Informationen speichert. Diese Variable können wir dann in unserem Code verwenden.
Je nach Art der Informationen, die aus dem Eingabefenster zurückgegeben werden sollen, können wir einen bestimmten Variablentyp, der entweder Text (eine String- oder Variant-Variable) oder eine Zahl (eine Integer-, Long-, Double- oder Single-Variable) zurückgibt, deklarieren.
Die String-Variable mit einem Eingabefenster
So können Sie ein Eingabefenster, in dem die Daten in einer String-Variablen zurückgegeben werden, erstellen.
Dim strEingabe as String
strEingabe = InputBox("Dies ist mein Eingabefenster", "MeinEingabeTitel", "Geben Sie Ihren Eingabetext HIER ein")
Beachten Sie, dass wir zuerst eine Variable deklarieren. Dieser Variable wird der Wert, den der Benutzer eingibt, zugewiesen. Wir haben den Variablentyp String verwendet, damit das Eingabefenster Textzeichenfolgen (einschließlich aller alphanumerischen Zeichen) akzeptieren kann.
Die Zahlenvariable mit einem Eingabefenster
Wenn Sie eine Zahlenvariable deklarieren, dürfen Sie nur eine Zahl in das Eingabefenster eingeben.
Dim iEingabe As Integer
iEingabe = InputBox("Bitte geben Sie eine Zahl ein", "Rechnungsnummer erstellen", 1)
Zunächst deklarieren wir die Zahlenvariable als Ganzzahlvariable. Dann können wir auch einen Standardwert von 1 in das Eingabefenster eingeben.
Wenn wir statt einer Zahl eine Zeichenkette eingeben und dann auf OK klickten, würden wir den Fehler „Typen unvertröglich“ bekommen, da eine Zahlenvariable keine Zeichenkette akzeptiert.
Eingaben von einem Benutzer erhalten
Hier ist ein weiteres Beispiel, das die beliebtesten Funktionen eines Eingabefensters verwendet.
Der folgende Code führt drei Dinge aus:
1. Er fordert mit einem Eingabefenster zur Eingabe auf und weist sie einer Variablen zu
2. Überprüft die Eingabe, andernfalls wird die Unterprozedur beendet
3. Gibt die Eingabe in einer Meldungsbox zurück
Public Sub MeinEingabefenster()
Dim MeineEingabe As String
MeineEingabe = InputBox("Dies ist mein Eingabefenster", "MeinEingabeTitel", "Geben Sie HIER Ihren Eingabetext ein")
If MeineEingabe = "Geben Sie HIER Ihren Eingabetext ein" Or MeineEingabe = "" Then
Exit Sub
End If
MsgBox "Der Text von MeinEingabefenster ist " & MeineEingabe
End Sub
Rückgabe der Eingabe in ein Excel-Blatt
Sie können die Eingaben, die Sie in ein Eingabefenster eingeben, in eine bestimmte Zelle in Ihrem Excel-Blatt zurückgeben.
Range("P1") = InputBox("Bitte geben Sie Ihren Namen ein", "Namen eingeben", "Namen HIER eingeben")
Wir können Eingabedaten auch über eine Variable an ein Excel-Blatt zurückgeben.
Sub ZahlEingeben()
On Error Resume Next
Dim dblBetrag As Double
dblBetrag = InputBox("Bitte geben Sie den gewünschten Betrag ein", "Betrag eingeben")
If dblBetrag <> 0 Then
Range("A1") = dblBetrag
Else
MsgBox "Sie haben keine Zahl eingegeben!"
End If
End Sub
In dem obigen Beispiel müssen wir eine Zahl eingeben. Wenn wir eine Zahl eingeben, dann wird die Variable dblBetrag diese in das Excel-Blatt in Zelle A1 eintragen. Wenn wir jedoch keine Zahl eingeben, erscheint eine Meldung, dass wir keine Zahl eingegeben haben und in Zelle A1 wird nichts eingetragen.
Verwendung von VBA-Eingabefenstern in Access-VBA
Das VBA-Eingabefenster funktioniert in Access genauso wie in Excel, wenn es Benutzereingaben in Form eines Nachrichtenfeldes zurückgibt.
Wenn Sie jedoch die Benutzereingaben an die Datenbank zurückgeben möchten, müssen Sie das Recordset-Objekt und nicht das Range-Objekt wie in Excel verwenden.
Sub RechnungsnummerEingeben()
Dim dbs As Database
Dim rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("tblRechnungen", dbOpenDynaset)
With rst
.AddNew
!InvNo = InputBox("Bitte geben Sie die Rechnungsnummer ein", "GENERIEREN DER RECHNUNGSNUMMER", 1)
.Update
End With
rst.Close
Set rst = Nothing
Set dbs = Nothing
End Sub
VBA-Programmierung leicht gemacht
Suchen Sie nicht länger online nach VBA-Code. Erfahren Sie mehr über AutoMacro, einen VBA-Code-Generator, der es Anfängern ermöglicht, Prozeduren von Grund auf mit minimalen Programmierkenntnissen und mit vielen zeitsparenden Funktionen für alle Benutzer zu programmieren!