[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『EXCEL VBA MsgBoxのキャンセル時』(m)
VBA初心者です。
メッセージボックスをマクロ実行の最初に表示させ、もしキャンセルであれば処理中止をしたいのですがわかりません。
'メッセージエラー
MsgBox "確認済ですか?", vbOKCancel + vbExclamation, "チェック項目" If MsgBox("確認済ですか?", vbOKCancel + vbExclamation, "チェック項目") = vbCancel Then End End If
こちらで試していたのですが、修正をお教えいただけますでしょうか。
< 使用 Excel:unknown、使用 OS:unknown >
質問の本意とははずれますが、ちょっと気になったので。
処理中止に Endステートメントを使ってますが、これは副作用が大きいので使用すべきではないです。詳細は下記を参照。
End ステートメント (VBA) | Microsoft Learn
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/end-statement
Endではなく、Exit Sub を使ってください。
(hatena) 2023/08/10(木) 10:06:22
下記のコードになってますか。
If MsgBox("確認済ですか?", vbOKCancel + vbExclamation, "チェック項目") = vbCancel Then Exit Sub End If
(hatena) 2023/08/10(木) 10:26:21
ブック上でhatenaさんご提示のコードを実行すれば、VBEではなくブック表示のままになると思います。
(西瓜) 2023/08/10(木) 13:14:58
ワシ... vbOKCancel派です。スマセン。 orz
実行の是非を問うメッセージの場合は[OK]か[Cancel]かの選択の方が直感的にしっくり来るので、 ユーザーが[OK]か[Cancel]かで答えられる様なメッセージで問い掛ける様に心掛けます。
vbYesNoは主に条件等の指定や確認に... あれ? 使ってたかな... ^^; そもそもあんまり使ってなかったかもwww ^^;
(白茶) 2023/08/10(木) 17:42:43
いま改めて自ブック見直してみた。やっぱYesNo結構使ってたわぁ... ほとんど条件分岐か再確認メッセージでした。
で、もひとつ気付いたのが Cancelボタン配置したら[Esc]キーでキャンセル出来るんですよね。
>>直感的にしっくり来る の正体はどうやらこれだった模様。
(白茶) 2023/08/10(木) 18:08:37
(VBNO) 2023/08/10(木) 20:31:12
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.