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.

Autor/in Toni Lumiella
Datum 29.02.2012
Lesezeit 3 Minuten

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.


Autor/in

Toni Lumiella

Toni Lumiella ist Eidg. Ausbilder FA, MOS Master 2016, Microsoft Certified Trainer und Inhaber der Firma Learning Partner. Seit über 20 Jahren ist er in der Erwachsenenbildung tätig. Er ist spezialisiert in den Hauptanwendungen der Office-Apps, Microsoft 365, Digital Workplace und auch in der Erstellung von Lernvideos, Kursunterlagen, Assessments und Blog-Beiträgen.