他の誰かによって作成されたサブを呼び出す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。