Der Rückgabewert der Methode Application.InputBox() hängt vom gewählten Typ ab. Als Typ können Sie z. B. Zahl, Formel, Zellbezug, Text oder Wahrheitswert wählen. Falls der Benutzer den Button Abbrechen betätigt, wird False zurückgegeben; dies können Sie zur weiteren Ablaufsteuerung nutzen.
Hinweis: Excel-Versionen vor Excel 2007 reagieren auf den Aufruf dieser Methode nicht stabil. Sie melden sich nach dem Aufruf der Methode gelegentlich völlig ab, ohne dem Benutzer eine Eingabemöglichkeit zu bieten.
Wie beim einfachen Eingabefeld könnten Sie einen Default-Wert und einen Titel vorgeben. Der Typ der InputBox wird mit dem letzten Para- meter festgelegt, daher wird in den Beispielen mit benannten Parametern gearbeitet.
Ein Beispiel für die Eingabe einer Zahl (Typ 1):
Sub EingabeZahl()
ThisWorkbook.Worksheets("Tabelle1").Activate
Range("A1").Value = Application.InputBox _
(Prompt:="Zahl:", Type:=1)
End Sub
Falls der Benutzer eine gültige Eingabe macht, dann wird diese im vorliegenden Beispiel in der Zelle A1 ausgegeben. Gültige Zahlen sind z. B. 5,7 oder 5e2 (= 5 mal 102 = 500) oder 0,57. Ungültige Zahlen sind z. B. 5a7 oder a57. Die Eingabe von 5.7 ist gültig und ergibt den 05. Juli des aktuellen Jahres. Gültigkeit Falls der Benutzer keine gültige Eingabe macht, wird er darauf aufmerksam gemacht.
Ein Beispiel für die Eingabe einer Formel (Typ 0):
Sub EingabeFormel()
ThisWorkbook.Worksheets("Tabelle1").Activate
Range("A1").Value = Application.InputBox _
(Prompt:="Formel:", Type:=0)
End Sub
Der Benutzer hat die Möglichkeit, Formeln mit Zellbezügen einzugeben. Diese können auch nicht zusammenhängende Bereiche umfassen. Die Eingabe von =SUMME(B1:B3) führt dazu, dass diese Formel zum Inhalt der Zelle A1 wird und das erwartete Rechenergebnis in der Zelle A1 ausgegeben wird. Beginnt der Benutzer seine Eingabe mit =SUMME( dann kann er den zu summierenden Zellbezug auch mit der Maus bzw. mit den Pfeiltasten auswählen. Anschließend muss er nur noch die Klammer schließen. Eine ungültige Formel führt wie erwartet zur Ausgabe einer Fehlermeldung in der Zielzelle ( #WERT? oder #NAME? ).
Ein Beispiel für die Eingabe eines Zellbereichs (Typ 8):
Sub EingabeZellbereich()
Dim RG As Range
ThisWorkbook.Worksheets("Tabelle1").Activate
Set RG = Application.InputBox _
(Prompt:="Zellbereich:", Type:=8)
RG.Borders.LineStyle = xlContinuous
End Sub
Es wird zunächst eine Objektvariable für einen Range deklariert. Der Benutzer hat die Möglichkeit, Zellbereiche sowohl per Tastatur als auch per Maus einzugeben. Die Zellbereiche können auch nicht zusammenhängende Bereiche umfassen.