2005.12.19: ASP.NET でクライアントの Excel を起動する

ASP.NETで社内イントラネット用にWebアプリケーションを構築。MS-SQL ServerのデータをExcelで印刷することになった。その時にJavascriptを使ってクライアント側のExcelを起動してマクロを走らせた。
実行する為には、WEBサーバをIEの《信頼済みサイト》に登録する必要があります。
面倒なCOM系の設定は不要なようだ。
(サーバ:Windows2000、クライアント:WindowsXP Pro SP2)

《コードサンプル》
function xlRun(xlFile, xlMacro, xlCmd, xlPara) {
  var xlApp = new ActiveXObject("Excel.Application");
  xlApp.DisplayAlerts = false;
  xlApp.Visible = true;
  xlApp.Workbooks.Open(xlFile, 0, true);
  xlApp.Run(xlMacro, xlCmd, xlPara);
  xlApp.Quit();
  xlApp = null;
}

《簡単な説明》
フルパスで指定されたExcelファイルをRead-Onlyで開いて、マクロを実行する。
ASP.NET上では、Button1などにonClickイベントを割り当てる。

xlFile

Excelファイルをフルパスで指定する。ネットワーク上の公開フォルダも可。

xlMacro

実行するマクロの名前

xlCmd, xlPara

マクロに渡す引数