אפשר לכתוב פונקצית מעטפת (wrapper) ל-InputBox, שניתן להעביר אליה רשימת ערכים מותרים.
בדוגמא הבאה ניתן להעביר רשימת ערכים מותרים המופרדים על ידי צינור pipe |.
Public Function LimitedInputBox(prompt As String, title As String, valuesList As String) As String
Dim userInput As String
Dim done As Boolean: done = False
Dim values As Variant
values = Split(valuesList, "|")
Do
userInput = InputBox(prompt, title)
If Len(userInput) > 0 Then
Dim val As Variant
For Each val In values
If userInput = val Then
done = True
Exit For
End If
Next val
End If
Loop Until done
LimitedInputBox = userInput
End Function
כעת ניתן לקרוא לפונקציה כך:
selectedColor = LimitedInputBox ("Please enter a color (white, black, or blue):", "Color selection", "white|black|blue")
או בדוגמא שלך (סדר הפרמטרים מוצג הפוך בגלל העברית...):
selectedClass = LimitedInputBox ("בחר כיתה מ-א עד ח:", "בחירת כיתה", "א|ב|ג|ד|ה|ו|ז|ח")
שים לב שתיבת הקלט תמשיך לבקש קלט מהמשתמש גם אם הוא יבחר Cancel או ילחץ על לחצן הביטול.
אם רוצים לאפשר גם אי-בחירה, אפשר כמובן להוסיף בדיקה כזו.