« 「Web ページ、HTML のみ」で保存できないときは、デザインモードで回避する。 | トップページ | VBAで非同期割込処理。n秒後に自動的に閉じるMsgBox() »

2007年9月30日 (日)

IE/HTAで非同期割込処理。n秒後に自動的に閉じるMsgBox()

WScript.ShellのPopUp()の待機秒数指定は、IE/HTAなどでは使えません。:-(

そこで、htmlfileのwindow.setTimeout()を利用した代替方法です。

<html>
<head>
<script language=vbscript>
Set wShell=CreateObject("WScript.Shell")
Set d=CreateObject("htmlfile")
Sub proc()
If wShell.AppActivate("ユニークなタイトル") Then wShell.SendKeys "{ESC}"
End Sub
Sub button1_onclick()
wShell.PopUp "5秒経っても自動的に閉じません。",5,"ユニークなタイトル"
d.parentWindow.setTimeout GetRef("proc"),5000
MsgBox "5秒後に自動的に閉じます。",,"ユニークなタイトル"
End Sub
</script>
</head>
<body>
<button id=button1>Push</button>
</body>
</html>

window.setTimout()に関数ポインタを指定しています。

« 「Web ページ、HTML のみ」で保存できないときは、デザインモードで回避する。 | トップページ | VBAで非同期割込処理。n秒後に自動的に閉じるMsgBox() »