Excel VBAでダイアログボックスの表示を止める方法

Excel VBAでダイアログボックスの表示を止める方法

Posted at December 13,2013 1:55 AM
Tag:[Excel, VBA]

Excel VBAでダイアログボックスの表示を止める方法を紹介します。

本エントリーはビギナーの方向けの内容です。

1.ダイアログボックスとは

ダイアログボックスとは、次のようなメッセージを表示するダイアログを指します。

ダイアログボックス

次のようにMsgBox関数を実行するとダイアログボックスを表示します。

Sub test()
    MsgBox 1
End Sub

ネットで調べると「メッセージボックス」とも言うようですが、Microsoftの公式ページでは「ダイアログボックス」となっています。

MsgBox 関数 (Visual Basic)

2.問題点

たとえば次のようなコードを実行した場合、For文の中にあるMsgBoxが1000回表示されてしまいますが、途中で中断させる方法が分かりません。

Sub test()
    Dim i As Integer
    Dim counter As Integer
    For i = 1 To 1000
        MsgBox i
    Next i
End Sub

3.ダイアログボックスの表示を中断する

ダイアログボックスの表示を中断するには、以下のいずれかを実行します。

  • Escキーを押下
  • Ctrlキー+Pauseキーを押下

Escキーは、押下してすぐに戻すと次のダイアログボックス表示処理に移ってしまうため、1秒ほど押し続ける必要があります。

Ctrlキー+Pauseキーの場合、ダイアログボックスが表示された状態で1回実行すれば停止します。

中断した場合「コードの実行が中断されました。」というダイアログが表示されるので、「終了」をクリックすればプログラムも終了します。

ダイアログ

ちなみにダイアログの「デバッグ」をクリックすると、VBEの表示に切り替わり、中断した行がマーキングされた状態になります。この状態ではプログラムが完全に終了していない(=再開させると再びダイアログボックスが表示されてしまう)ので注意しましょう。

中断

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)