Home » WSH・Windows Script Hostの使い方 » 自動的に閉じるメッセージボックス

対象:Excel2007, Excel2010, Excel2013

「自動的に閉じるメッセージボックス」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

VBAではMsgBox関数で、メッセージボックスを表示することができます。

その表示されたメッセージボックスを、自動的に閉じる方法を探している方による検索です。

[スポンサードリンク]

残念ながらVBAのMsgBox関数で表示されるメッセージボックスは、自動的に閉じることができません。

自動的に閉じるメッセージボックスを表示するサンプルマクロ

自動的に閉じるメッセージボックスを利用するには、WSH(Windows Scripting Host)のWshShell.Popupメソッドを利用するのが簡単です。

Sub 自動的に閉じるメッセージボックス()
 Dim wsh As Object 'IWshRuntimeLibrary.WshShell
 Set wsh = CreateObject("Wscript.Shell")

 wsh.Popup _
  Text:="3秒後に自動的に閉じます。", _
  SecondsToWait:=3, _
  Type:=vbOKOnly

 Set wsh = Nothing
End Sub

上記のマクロを実行すると、
「3秒後に自動的に閉じます。」
と記述されたメッセージボックスが表示され、3秒後に自動的に閉じます。

WshShellオブジェクトをCreateObjectしてから、
  Dim wsh As Object
  Set wsh = CreateObject("Wscript.Shell")

自動的に閉じるメッセージボックス

WshShellオブジェクトPopupメソッドを利用しています。

WshShell.Popupの引数

WshShell.Popupメソッドはオブジェクトブラウザーで確認すると下図のとおり、
  Text
  SecondToWait
  Title
  Type
という4つの引数を指定できます。

自動的に閉じるメッセージボックス

引数の名前からわかるとおりSecondToWaitに、何秒後に自動的に閉じるかを指定します。

ちなみに、VBAのMsgBox関数は、
  Prompt
  Buttons
  Title
  HelpFile
  Context
という名前の付けられた5つの引数を指定できます。

自動的に閉じるメッセージボックス

同じような意味の引数でも、引数名が一部異なっているので、名前付き引数を利用するときは注意が必要です。

VBA.MsgBox の Prompt が、
WshShell.Popup では Text に該当します。

VBA.MsgBox の Buttons が、
WshShell.Popup では Type に該当します。

ボタンの種類などを指定する引数・Typeには、VBA.MsgBoxのButtonsと同じく、vbYesNoなどの定数で指定することができます。

名前付き引数を使わないで標準引数で指定する場合も、VBA.MsgBoxとWshShell.Popupでは順番が異なりますから要注意です。

WshShell.Popupの戻り値

WshShellのPopupメソッドの戻り値は、基本的にVBAのMsgBox関数と同じです。

自動的に閉じられた場合には「-1」を返してきます。

Windows Script Host Object Modelを参照設定している場合

上記のマクロは参照設定していないことを前提にCreateObjectしていますが、Windows Script Host Object Modelを参照設定している場合は、

自動的に閉じるメッセージボックス

CreateObject関数を使わずに、
 Sub 自動的に閉じるメッセージボックス()
  Dim wsh As IWshRuntimeLibrary.WshShell
  Set wsh = New IWshRuntimeLibrary.WshShell
  wsh.Popup _
   Text:="3秒後に自動的に閉じます。", _
   SecondsToWait:=3
  Set wsh = Nothing
 End Sub
とすることもできます。

最終更新日時:2018-09-24 17:15

[スポンサードリンク]

Home » WSH・Windows Script Hostの使い方 » 自動的に閉じるメッセージボックス

「WSH・Windows Script Hostの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.