Die praktische InputBox-Funktion in Excel
Makros müssen keine stummen Helfer sein. Mit der «InputBox» lässt du Excel direkt mit dir sprechen: Sie blendet ein Eingabefenster ein, nimmt Zahlen, Text oder Zellen entgegen – und übergibt deine Eingabe ans Makro. So steuerst du Abläufe interaktiv, ohne den Code jedes Mal anzupassen. Wie du die Funktion einsetzt und eigene Dialoge erstellst, zeigen dir die folgenden Beispiele.
Wenn das Makro mit dir «spricht»
Excel-Makros müssen nicht still und leise im Hintergrund arbeiten. Du kannst mit ihnen interagieren und eine Eingabe entgegennehmen. Hierzu bietet Excel die Funktion «InputBox», die dir ein Eingabefenster auf den Bildschirm bringt. Sie existiert in zwei Varianten und verarbeitet fast alles, was du eingeben oder auswählen kannst: 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 kannst du 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. Klickst du auf «Ok», wird der Inhalt des Eingabefelds als Text der Variablen zugewiesen.
Wenn du den Anzeigetext mehrzeilig ausgeben möchtest, trenne 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 du anderes als Text eingeben sollst, greife 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, sieht 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 du das Resultat zuweist, definierst du als passenden Typ, in diesem Beispiel als Ganzzahl (Integer). Gibst du einen falschen Typ ein, etwa Text statt einer Zahl, quittiert Excel dies mit einer Fehlermeldung. Um beispielsweise bei der Eingabe Text oder eine Zahl zu akzeptieren, kombiniere den Typenparameter entsprechend, etwa Type:=1+2.
Den Inhalt der Variablen kannst du nun im Excel-Makro weiterverarbeiten. Dabei stehen dir die gewohnt mächtigen VBA-Werkzeuge zur Verfügung.