[[20060323161759]] 『InputBox関数を実行してキャンセルか空文字を入力』(mittya) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『InputBox関数を実行してキャンセルか空文字を入力されたかがわかる方法』(mittya)

 InputBox関数は入力された値が返されますが、戻ってきた値が空文字だった場合、 
 ・キャンセルを押下したのか 
 ・何も入力せずOKボタンを押下したのか 
 上記2つを判別する方法はありますか? 
 どうぞよろしくお願いいたします。 

 こちらが参考にならなしでしょうか。
[[20060310180746]] 『キャンセルを押すと処理終了』(とも) 
(みやほりん)(-_∂)b


 衝突しました。
 私が良く使う方法ですが・・・。
Sub Test()
Dim MyRange As String
MyText = Application.InputBox("貼り付け先の選択", "セルの指定", Type:=2)
    If MyText = "" Or MyText = False Then
        MsgBox ("空白またはキャンセルです")
    Else
        MsgBox (MyText & vbCrLf & "文字列です")
    End If
End Sub

 (川野鮎太郎)

 みやほりんさん、川野鮎太郎さんありがとうございます。

 Dim myRes As String
 myRes = InputBox("何か入力してください。")
 If StrPtr(myRes) = 0 Then
 ↑こちらのIf文が「キャンセル」押下時のみはいりました。

 If MyText = "" Or MyText = False Then
 ↑こちらだと未入力でOKボタン押されるとキャンセル扱いになってしまいました。

 StrPtrはヘルプで出ないのでよくわかりませんが、少しいろいろ調べてみます。
 本当にどうもありがとうございました。


 勝手に手直ししました。
 すみません。
 「False」って文字を入れるのは無しでお願いします。

 Dim MyRange As String
 MyText = Application.InputBox("貼り付け先の選択", "セルの指定", Type:=2)
 If MyText = "False" Then
     MsgBox ("キャンセルです")
 ElseIf MyText = NullString Then
     MsgBox "空白"
 Else
     MsgBox (MyText & vbCrLf & "文字か数字です")
 End If
 BJ


 変数を書き換えていませんでした(^_^A;
Sub Test()
Dim MyText As String
MyText = Application.InputBox("文字を入力してください。", "文字の入力", Type:=2)
    If MyText = "" Or MyText = "False" Then
        MsgBox ("空白またはキャンセルです")
    Else
        MsgBox (MyText & vbCrLf & "文字列です")
    End If
End Sub

 (川野鮎太郎)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.