dポイントプレゼントキャンペーン実施中!

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

マクロ(macro.xls)に引数(csvファイル名)を渡して起動させたいため、
vbsを作成してマクロを引数つきで実行するようにしました。

コマンドからは
>test.vbs /FILE:macro.xls /P:aaa.csv

でマクロを実行することができたのですが、

HTMLにリンクを張り、リンクをクリックすることで
vbsを引数つきで実行するにはどうすればよいでしょうか?
(Javascriptを経由しても構いません)

A 回答 (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>
    • good
    • 1
この回答へのお礼

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

ご回答ありがとうございました。

お礼日時:2010/10/26 23:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています