ActiveX 経由で IE から 出力してる Excel が Windows7 になったらブラウザの裏に隠れてしまうようになった時の対処メモ
似たような事象はあるらしいようだが・・
ブラウザ上で動かす VBScript や JScript からでは根本的な解決はできなさそう・・・
ただ処理の中で、WEBサーバ上にあるファイルをオープンする処理がある場合は、オープン中のダイアログが表示され、その際エクセルがアクティブになってると前画面に表示されるので、これをうまく利用すると良い。
注意点としては、出力処理が終了してもオープンしたファイルの格納先変数が生きちゃってる場合は、キャッシュが効いてダイアログが表示されないケースがあるので、明示的に set xxx = Nothing するか、ローカル変数として定義する必要がある。
Class GenerateReportClass Public LAYOUTBOOK Sub GenerateReport() Set OBJXLS = CreateObject("Excel.Application") OBJXLS.Visible = true Set OBJWSH = CreateObject("WScript.Shell") OBJWSH.AppActivate OBJXLS set LAYOUTBOOK = OBJXLS.workbooks.open("http://xxx/xxx.xls") 'これも大事 OBJXLS.Visible = false OBJXLS.Visible = true '出力処理・・・ LAYOUTBOOK.close 'これが無いとworkbooks.openでダイアログが表示されない set LAYOUTBOOK = Nothing End Sub End Class