こんばんは。
Sub test()
Dim タイトル As String
タイトル = InputBox("タイトルを入力してください。")
If Cancel = True Then Exit Sub
’次のコード・・・
’次のコード・・・
End Sub
このコードを実行した時に
下記のダイアログが出てきて
右のキャンセルボタンを押すと、
「If Cancel = True Then Exit Sub」
でsubステートメントを抜けたいのですが
「Cancel」の部分が
「変数が定義されていません」とエラーになってしまいます。
Dim Cancel As Boolean
を追加してキャンセルボタンを押しても
TrueではなくFalseになってしまいます。
回避方法を教えてください。
よろしくお願いします。
No.5
- 回答日時:
こんばんは。
一般的に、InputBox (関数)に、0と[ESC]の区別が付きません。本当は、キャンセル(Esc)は、「0」ではないけれども、数字の0のようしか見えません。ただし、数字で使えるのは、1回だけです。特殊なコードが混じりこんでいます。以下は、トライアルのコードで、実際には使われません。
かつては、StrPtr関数で判定をしていました。
Dim ret As Variant 'Variant 型に指定
Dim buf() As Byte
ret = InputBox("タイトルを入力してください。")
buf = ret 'パイナリで調べる
If UBound(buf) < 0 Then Exit Sub
MsgBox ret
現在は、Applicaiton.InputBox (メソッド)を使うようにします。
Dim ret As Variant 'Variant 型に指定
ret = Application.InputBox("タイトルを入力してください。", Type:=2) '文字で返す
If VarType(ret) = vbBoolean Or ret = "" Then Exit Sub
'次のコード・・・
'次のコード・・・
後は、#4さんのリンク先の通りです。
No.4
- 回答日時:
No.3ベストアンサー
- 回答日時:
ヘルプには
キャンセル] ボタンをクリックすると、InputBox 関数は長さ 0 の文字列 ("") を返します。
と書いてありますので
Cancelボタンをクリックして抜けるときは、
タイトル = InputBox("タイトルを入力してください。")
If タイトル = "" Then Exit Sub
とします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
vba
Access(アクセス)
-
tera term マクロのinputbox
その他(コンピューター・テクノロジー)
-
VBAでInputBoxの再入力をさせるには?
Visual Basic(VBA)
-
-
4
Excel VBAで、Application.InputBoxのキャンセルと入力値ゼロを区別したい。
Visual Basic(VBA)
-
5
TeraTermマクロのinputboxで入力した値をメッセージ確認表示するには?
サーバー
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
Inputboxの表示位置(VBA)
Excel(エクセル)
-
8
EXCEL VBA でインプットボックスを開いたときの入力モードの設定について
Excel(エクセル)
-
9
Chr(13)とChr(10)の違いは?
PowerPoint(パワーポイント)
-
10
フォントの大きさ
Visual Basic(VBA)
-
11
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
12
プロシージャ名の取得
Visual Basic(VBA)
-
13
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
14
Excelマクロ シート名を変数で指定
Excel(エクセル)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
押したボタンの位置取得(共通のマクロ)
Excel(エクセル)
-
17
InputBox関数でキャンセルボタンを不活性化させたいです
Excel(エクセル)
-
18
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
19
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
20
TeraTermマクロの文字列結合
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのデーターが2か月前の...
-
エクセルVBA、別ブックへ転記す...
-
【マクロ】顧客番号にて一致さ...
-
エクセル共有したが、アクセス...
-
エクセル②
-
(マクロ)データをAブックからB...
-
Excelでセルの値が同じか...
-
エクセルを使っていて2024/5/15...
-
指定文字の間に
-
Microsoft 365の Excel を使用...
-
エクセルの計算
-
エクセルでの作業計算方法について
-
Excelで全角を半角にしたいので...
-
エクセル関数に詳しい方教えて...
-
Googleスプレッドシートでファ...
-
エクセル 文字を増やしたい。
-
はがきについて。
-
エクセルの暗号化なしのバーの...
-
【マクロ】必要な項目(列)の...
-
Excel
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷時に、複数ページに共通な...
-
Excel:2ページ目以降のタイト...
-
InputBox キャンセルボタンが...
-
12インチって何センチ?
-
Wordで、タイトルと名前は真ん...
-
Wordに登録したタイトル(表題...
-
【Excel】複数のタイトル行を設...
-
過去の全国の波の高さデータが...
-
音楽のレポートの書き方につい...
-
柳田國男の「日本には世間があ...
-
パズドラ 変身なしで、割とお手...
-
詩の題名はつけたほうがいいで...
-
『む』からはじまるポジティブ...
-
教えてGooの回答の信憑性てどの...
-
DVDの副音声が聞きたい
-
印刷のタイトルは行も列も同時...
-
Excelの1ページ目にだけタイト...
-
Excel VBAのINPUT BOX...
-
Finale NotePad 2012 タイト...
-
【WORD2003】表の繰り返しタイ...
おすすめ情報