![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
htmlまたはJavascriptからファイルを引数つきで起動する。
マクロ(macro.xls)に引数(csvファイル名)を渡して起動させたいため、
vbsを作成してマクロを引数つきで実行するようにしました。
コマンドからは
>test.vbs /FILE:macro.xls /P:aaa.csv
でマクロを実行することができたのですが、
HTMLにリンクを張り、リンクをクリックすることで
vbsを引数つきで実行するにはどうすればよいでしょうか?
(Javascriptを経由しても構いません)
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>
javascriptからの「ActiveXObject」の処理は初耳でした。
vbsからの実行はやめて、
この方式で考えてみようと思います。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Word(ワード) Word 2016のマクロを Word 2021のWordでキー動作させたい 3 2023/04/12 16:14
- その他(プログラミング・Web制作) VBSでExcelファイル起動時、重複しても開くのを止めたい 1 2022/10/01 23:20
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
ファイル名を今日の日付、時刻...
-
Excelの中でオートシェイ...
-
ピボットグラフの書式の固定に...
-
エクセルシートをまとめて印刷...
-
最初の1回のみにボタンクリッ...
-
VBAでシートの保護をかける際に...
-
Word VBAでWindows media playe...
-
VBAを使ってエクセルシート...
-
エクセルで「ODBC Microsoft Ac...
-
Pictures.Insertメソッド⇒Shape...
-
別のパソコンでエクセルのマク...
-
「ほかのアプリケーションを無...
-
マクロを消すマクロは不可能?
-
エクセル終了時の保存確認メッ...
-
EXCELマクロコードを、それを含...
-
一太郎システムマクロファイル...
-
Adobe Reader を閉じる
-
openofficeのエラー
-
【VBA】複数ブックから特定のシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
cellsで特定の離れた範囲を選択...
-
ファイル名を今日の日付、時刻...
-
Powerpointでランダムな数字の...
-
VBA[Private Sub]のコードをシ...
-
エクセルシートをまとめて印刷...
-
エクセル2007 テキストボ...
-
別ブックからユーザーフォーム...
-
ピボットグラフの書式の固定に...
-
VBAを使ってエクセルシート...
-
エクセルのマクロでSelection.S...
-
最初の1回のみにボタンクリッ...
-
VBAに詳しい方教えてください。
-
VBAをVBに変換する方法
-
エクセルワークシート上に印刷...
-
Pictures.Insertメソッド⇒Shape...
-
【ExcelVBA】クエリの更新とピ...
-
エクセルVBAで、画像の倍率を知...
-
エクセル vba クリック~離し...
おすすめ情報