マクロ講座MsgBoxを自動的に閉じたい

MsgBoxを自動的に閉じたい
MsgBoxを自動的に閉じたい

マクロ 78回メッセージボックスを自動に閉じる

MsgBoxが勝手に閉じてくれれば便利なのだけど

マクロを勉強したのは、少しでも効率アップにつなげたいからで、まさかマクロ実行中にマウスを持ってメッセージボックスのポップアップウィンドウを閉じる必要があるとは?

マクロが使えるようになると、かなり便利になりますが、どうしてもメッセージボックスを表示させたいということもあります。
今回はメッセージボックスを表示させたいけれども、そのためにわざわざマウスを持ってクリックするのは嫌だという方のためのコードです。

MsgBox自動的に閉じるようにしたい

1. メッセージボックスを自動に閉じるにはWindows script host(wsh)のPOPUPメゾットを使うと可能になります。
Windows script host(wsh)とは、windows OSに搭載された、ある決まった一連の手続きをテキストファイルに記述したものです。
MsgBoxの代わりにWSHのPOPUPメゾットを使います。
VBAでWSHのPOPUPメゾットを使うには、事前に参照設定をしておく必要があります。


MsgBoxを自動的に閉じたい1

2. VBEのメニュー、ツールから参照設定をクリックします。Windows Script Host Object Modelを見つけてチェックをいれてください。


MsgBoxを自動的に閉じたい2

3.Pppupメソッドの書式と引数は以下のようになります。


MsgBoxを自動的に閉じたい3

4.自動的に閉じるコードは次のように記述しました。

Sub AutoClose()  'メッセージを5秒後に閉じる
 
    Dim WSH As Object
    Set WSH = CreateObject("WScript.Shell")
    WSH.Popup "5秒後に自動に閉じます", 5, _
        "メッセージを表示", vbInformation
    Set WSH = Nothing
 
End Sub


MsgBoxを自動的に閉じたい4

6. 実行すると、メッセージが表示され、5秒後に閉じました。


MsgBoxを自動的に閉じたい5