Die praktische InputBox
Excel-Makros müssen nicht still und leise im Hintergrund arbeiten. Sie können mit dem Benutzer interagieren und eine Eingabe entgegennehmen. Hierzu bietet Excel die Funktion «InputBox», die ein Eingabefenster auf den Bildschirm bringt.
Wenn das Makro mit dem Benutzer «spricht»
Excel-Makros müssen nicht still und leise im Hintergrund arbeiten. Sie können mit dem Benutzer interagieren und eine Eingabe entgegennehmen. Hierzu bietet Excel die Funktion «InputBox», die ein Eingabefenster auf den Bildschirm bringt. Sie existiert in zwei Varianten und verarbeitet fast alles, was ein Anwender eingeben oder auswählen kann: Text, Zahlen, Zellen und sogar Formeln.
Die einfache Form
In der simplen Variante liefert die Funktion InputBox bloss Text zurück. Mit zusätzlichen Parametern können Sie das Eingabefenster zusätzlich ausschmücken. Die Syntax lautet wie folgt:
Variable = InputBox(Anzeigetext, Fenstertitel, Vorgabe, X-Position des Fensters, Y-Position des Fensters, Hilfedatei, Hilfekontext)
Alle Parameter ausser Anzeigetext
sind optional. Fenstertitel
liefert eine aussagekräftigere Bezeichnung als «Eingabefenster», während die Vorgabe
den entsprechenden Text ins Eingabefeld stellt. Klickt der Benutzer auf «Ok», wird der Inhalt des Eingabefelds als Text der Variablen zugewiesen.
Wenn Sie den Anzeigetext mehrzeilig ausgeben möchten, trennen Sie die Zeilen mit der Konstante vbNewLine
, wie im folgenden Beispiel:
Sub Texteingabe()
Dim strEingabe As String
strEingabe = InputBox("Bitte geben Sie " & vbNewLine & _
"einen Text ein:", "Texteingabe", "Ihr Text")
End Sub
Die ausgebaute Eingabe
Wenn der Benutzer anderes als Text eingeben soll, greifen Sie auf die erweiterte Variante zurück, die Methode Application.InputBox
. Sie versteht die selben Parameter wie die einfache Form, nimmt aber zusätzlich noch die Art der Eingabe entgegen:
Variable = InputBox(Anzeigetext, Fenstertitel, Vorgabe, X-Position des Fensters, Y-Position des Fensters, Hilfedatei, Hilfekontext, Typ)
Der Typ legt über eine numerische Angabe fest, welche Eingaben akzeptiert werden. Mehrere Formen lassen sich dabei kombinieren:
- 0: Formel
- 1: Zahl
- 2: Text
- 4: Wahrheitswert (Wahr oder Falsch)
- 8: Zellbezug
- 16: Fehlerwert
- 64: Werte-Array
Obiges Beispiel, angepasst auf die Eingabe einer Zahl, schaut wie folgt aus:
Sub Zahleneingabe()
Dim intEingabe As Integer
intEingabe = Application.InputBox(prompt:="Bitte geben Sie " & vbNewLine _
& "eine Zahl ein:", Title:="Zahleneingabe", Default:="0", Type:=1)
End Sub
In diesem Beispiel wurde angegeben, wofür die Parameter stehen. Das ist genau genommen nur dann nötig, wenn die Reihenfolge der Parameter nicht den Vorgaben entspricht. Andererseits erhöht es die Lesbarkeit. Die Variable, der Sie das Resultat zuweisen, definieren Sie als passenden Typ, in diesem Beispiel als Ganzzahl (Integer). Die Eingabe eines falschen Typs, etwa eines Textes statt einer Zahl, quittiert Excel mit einer Fehlermeldung. Um beispielsweise bei der Eingabe Text oder eine Zahl zu akzeptieren, kombinieren Sie den Typenparameter entsprechend, etwa Type:=1+2.
Den Inhalt der Variablen können Sie nun im Excel-Makro weiterverarbeiten. Dabei stehen die gewohnt mächtigen VBA-Werkzeuge zur Verfügung.