他の誰かによって作成されたサブを呼び出すVBAサブがあります。時折、他のサブはOKボタンでMsgBoxを開きます。もう1つのサブは実行に時間がかかり、何百回も呼び出しているので、これを一晩実行できるようにしたいと思います。残念ながら、MsgBoxで[OK]をクリックする方法がわかりません。
私が試してみました
Application.DisplayAlerts = False
ただし、これはメッセージボックスを抑制しません。
これを行う方法はありますか?
ありがとう
これを行う1つの方法は、元のサブのコードをわずかに変更することです。必要な権限が必要になります...
True
。これにより、Sub OriginalSubName(
元のパラメータセットのようなものになります, Optional ShowMessages = True)
msgboxが呼び出された時点で、次のようにコードを変更します。
If showMessages = True Then 'The = True part is important here - see below.
showMessages is a Variant type
'The original statement that calls the msgBox
End If
元のサブの残りのコードは変更しないでください
False
追加のパラメーターとしてスローすることにより、元のサブを呼び出す行を変更します。これにより、OriginalSubName
パラメータのセットが作成されます, False
。このように、デフォルトではダイアログボックスを抑制しませんが、サブで使用する場合は抑制します。オプションのVariantタイプパラメータを使用するのはなぜですか?
If showMessages = True Then
だけでなく、を使用する必要があるのもそのためですIf showMessages Then
。