« Windows2000+WSH5.6で使える「ファイルを開く」ダイアログ | トップページ | Excelの設定変更の振る舞いについて »

2007年2月22日 (木)

HTAでもwindow.close()は復帰します!

WScript.Quit()は復帰しません。ヘルプにもそう書いてあります。

| WScript.Quit (1);
|
| // このコード行は実行されません。
| var i = 0;

しかし、HTAでのwindow.close()を同様に考えていると嵌ります。

以下のコードをhoge.htaにして実行してみてください。

<script>
close();
open();
</script>

HTAは終了しますが、open()が実行されてIEが開きます。

同様に、以下を実行してみてください。

<script language=vbscript>
set wshell=createobject("wscript.shell")
close
wshell.popup 1
</script>

何度か繰り返すと、たまにpopupが表示されることがあります。

なので、
If エラーケース Then
  window.close
End If
通常処理
End Sub/Functionなど
のようなコードは駄目です。

If エラーケース Then
  window.close
  Exit Sub/Functionなど
End If
通常処理
End Sub/Functionなど

If エラーケース Then
  window.close
Else
  通常処理
End If
End Sub/Functionなど
のようにしないといけません。

« Windows2000+WSH5.6で使える「ファイルを開く」ダイアログ | トップページ | Excelの設定変更の振る舞いについて »