• ベストアンサー

htmlまたはJavascriptからファイルを引数つきで起動する。

htmlまたはJavascriptからファイルを引数つきで起動する。 マクロ(macro.xls)に引数(csvファイル名)を渡して起動させたいため、 vbsを作成してマクロを引数つきで実行するようにしました。 コマンドからは >test.vbs /FILE:macro.xls /P:aaa.csv でマクロを実行することができたのですが、 HTMLにリンクを張り、リンクをクリックすることで vbsを引数つきで実行するにはどうすればよいでしょうか? (Javascriptを経由しても構いません)

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

当然、Windows IE限定のお話ですよね。 どおしてもHTMLでやりたいなら、test.vbsなんて余計な物を作らずに、 直接javascript(MsのJscript)のActiveXオブジェクトを使って、 直接ExcelApplicationオブジェクトを作って、Excelオブジェクト のクラスメソッドを使って、ファイルの読み込み、マクロの実行を すればよいんじゃないかと、Excelオブジェクトをシームレスで動かせば、 Excelを見せなくして、マクロ実行だけこっそりさせる事も出来ます。 ※だから、セキュリティ制限が厳しいのです。IEで、信頼済みサイトに登録する 必要があります。 例 <body> ---------- <p> <a name="button_no_kawari" onclick="Excel_open('xxx.xls');return false;"> エクセルを実行</a> </p> ---------- <script type="text/javascript"> <!--  function Excel_open(pgm_name){   var pgm_path = "c:/プログラム/";   var file_name = pgm_path + pgm_name;   var Excel = new ActiveXObject("Excel.Application");   Excel.Visible = true;   Excel.Workbooks.Open(file_name,0,"true");    Excel.Workbooks(pgm_name).Sheets("Menu").Activate;  //他にもいろいろExcelを操作出来る   Excel.Application.Run("main"); //<=マクロ"main"実行   Excel = "";  } // --> </script> </body>

superss28
質問者

お礼

javascriptからの「ActiveXObject」の処理は初耳でした。 vbsからの実行はやめて、 この方式で考えてみようと思います。 ご回答ありがとうございました。

関連するQ&A