- ベストアンサー
htmlまたはJavascriptからファイルを引数つきで起動する。
htmlまたはJavascriptからファイルを引数つきで起動する。 マクロ(macro.xls)に引数(csvファイル名)を渡して起動させたいため、 vbsを作成してマクロを引数つきで実行するようにしました。 コマンドからは >test.vbs /FILE:macro.xls /P:aaa.csv でマクロを実行することができたのですが、 HTMLにリンクを張り、リンクをクリックすることで vbsを引数つきで実行するにはどうすればよいでしょうか? (Javascriptを経由しても構いません)
- みんなの回答 (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>
お礼
javascriptからの「ActiveXObject」の処理は初耳でした。 vbsからの実行はやめて、 この方式で考えてみようと思います。 ご回答ありがとうございました。