12. Funkcja InputBox - jak wykryć, że naciśnięto Anuluj?

Metodę podał Krzysztof Naworyta (k.naworyta@datacomp.com.pl).

Wydaje się, że tematu jeszcze nie było, a skoro wygrzebałem:
a = InputBox("Wpisz coś")
if a = "" then
  Msgbox "Uzytkownik nacisnął Anuluj albo nic nie wpisał i nacisnął OK"
End if
No właśnie - "pusty" OK i Anuluj dają taki sam efekt (i zwykle to wystarcza, bo nikt nie oczekuje, że "" ma coś znaczyć). A jednak ... wyobraźmy sobie, że wyzwalamy serię InputBox, gdzie "" znaczy "weź pusty i idź dalej" a "anuluj" znaczy "przerwij przerabianie" ...

Rozwiązanie:
Private Sub Command1_Click()
    Dim s As String
    s = InputBox("Wpisz coś")
    If StrPtr(s) Then
        Msgbox "wpisano: """ & s & """"
    Else
        Msgbox "Wciśnięto Anuluj"
    End If
End Sub
Opis StrPtr() i innych: http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q199824

KN