« ショートカットに相対パスを指定する。 | トップページ | VBAやHTAでn秒後に自動的に閉じるメッセージボックス(その2) »

2008年1月11日 (金)

VBAでn秒後に自動的に閉じるメッセージボックス

WScript.ShellのPopUp()の秒指定は、Excelなどでは使えません。:-(

そこで、user32.dllのMessageBoxTimeoutA()を利用した代替方法です。

Private Declare Function MessageBoxTimeoutA Lib "user32" ( _
        ByVal hWnd As Long, ByVal lpText As String _
      , ByVal lpCaption As String, ByVal uType As Long _
      , ByVal wLanguageId As Long, ByVal dwMilliseconds As Long _
      ) As Long

Sub hoge()
    MessageBoxTimeoutA 0&, "5秒後に閉じます。", "タイトル", vbMsgBoxSetForeground, 0, 5000
End Sub

Undocumentedです。XP(SP2)では使えますが、他は知りません。どうも、XP以降らしい。

« ショートカットに相対パスを指定する。 | トップページ | VBAやHTAでn秒後に自動的に閉じるメッセージボックス(その2) »