- ベストアンサー
xlAPPの役割とキャンセルの挙動の違い
- xlAPPがないと、キャンセルしても無視される
- xlAPPがどんな役割をしているのか、xlAPPがないと、なぜ無視されるのかがわかりません
- InputBoxを開いた時にキャンセルするふたつのプロシージャーを比較した時に、xlAPPがないコードは、キャンセルしても無視されます。xlAPPがない場合のInputBoxの形式も違います
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Application.InputBoxを使っているということは、No.1さんも書かれていますがExcel VBAですね。 xlAPPがないInputBoxでも、StrPtr関数でキャンセルを判別することができるそうです。 (公式の仕様ではないという話もあるようですが) Dim strPathName As String, vntPathName As Variant 'vntPathNameはString型にしても大丈夫なようです Dim strFileName As String 'ここでわざとESCキーかキャンセルを押す vntPathName = InputBox("参照するフォルダ名を入力して下さい。", , "C:\") If StrPtr(vntPathName) = 0 Then MsgBox "キャンセルがクリックされました" Exit Sub End If
その他の回答 (1)
- watabe007
- ベストアンサー率62% (476/760)
InputBoxは、2つあります。 ◆ApplicationオブジェクトのInputBoxメソッド 入力されたデータを「文字列」「数値」「数式」「セルへの参照」などとして取得できる。 [キャンセル]ボタンが選択された場合、False(理論値)が返される。 キャンセルの場合 If VarType(vntPathName) = vbBoolean Then MsgBox "キャンセルがクリックされました" Exit Sub End If ◆ InputBox 関数 入力されたデータはすべて文字列として取得される。 [キャンセル]ボタンが選択された場合、空の文字列("")が返される キャンセルの場合 If vntPathName = "" Then MsgBox "キャンセルがクリックされました" Exit Sub End If
お礼
どうもありがとうございました。
お礼
どうもありがとうございました。