InputBoxのキャンセルを判定する

InputBox関数はダイアログボックスを表示し、ユーザーに文字列の入力を促します。戻り値は入力された文字列です。ヘルプによれば、ユーザーが入力をキャンセルした場合には長さゼロの文字列が返されます。ところがこの仕様では、ユーザーが意図的に空の文字列を入力したのか、それともキャンセルしたのか区別がつきません。

実際の動作を調べると、入力がキャンセルされた場合にはEmptyが返されています。つまり、InputBox関数の戻り値を調べ、Emptyであればユーザーは入力をキャンセルしたと判断すればよいのです。コーディング例は次の通りです。

Option Explicit
Main

Sub Main
    Dim Name
    Name = InputBox("Your name?")
    If IsEmpty(Name) Then
        Exit Sub
    End If
    MsgBox "Nice to see you, " & Name & "."
End Sub

最終更新日: 2011-10-13

戻る