|
▼チューリップ さん:
>inputboxのキャンセルボタンを押した場合、ムシされて
一つ目は、以下の部分ですね?
>Dim msg1 As String
>
> msg1 = InputBox("修正したい果物を入力してください" _
> & Chr(13) & "先頭の文字のみ入力でかまいません", "果物の検索", , 100, 100)
> If msg1 = "False" Then Exit Sub
InputBox には InputBox関数と Application.InputBoxメソッドの2つあり、
このばあいは InputBox関数のことですね?
InputBox関数では戻り値はすべて文字列になります。
(そういう意味で
> Dim msg1 As String
と変数を宣言しているのは正しいです。)
で[Cancel]ボタンが押された時は、"False"は返りません。
"" という長さ0の文字列でもありません。
戻り値msg1 を格納する「アドレスがない」状態が返るのです。
ちょっと難しいですが、
文字列変数のアドレス(これをポインタといいます)は
StrPtr()という関数で調べることができます。
結局、
> If msg1 = "False" Then Exit Sub
ではなく、
If StrPtr(msg1) = 0 Then Exit Sub
という風に判別します。
|
|