VBScriptで指定Excelブックを開きマクロを実行する方法

Excelのマクロ実行を外部操作で行いたいときはないでしょうか。

そんな時に便利なのはVBScriptを使う方法です。

数行のコードで実現できるのでとてもカンタンなんです。

今回はVBScriptで指定Excelブックを開きマクロを実行する方法を紹介します。



実行対象のマクロつきExcelブックを用意する

実行対象のマクロつきExcelブックを用意します。

マクロつきExcelブックであればなんでも結構ですが、

今回のサンプルマクロは実行するとA列の値をキーとし
wikiサイトからローマ字を取得しB列へ反映する内容となります。

マクロ実行後B列に値が入りますのでB列は空欄の状態です。

これをVBScriptで呼び出し、マクロが実行されB列に値が入るというイメージです。



指定Excelブックを開きマクロを実行するスクリプトを準備する

指定Excelブックを開きマクロを実行するスクリプトは以下の通りです。

以下の箇所を実行環境に合わせて変更します。

マクロつきExcelブックのパス
objExcel.Workbooks.Open(“C:\Users\extan\Documents\excel\wiki抽出.xlsm“)

マクロつきExcelブックのシート名 ※シートが一つの場合はコード自体不要です。
objExcel.worksheets(“Sheet1“).select

実行するマクロ名
objExcel.Application.Run “wiki検索と抽出
※マクロ実行のウイザードで表示されるのマクロ名を指定します。

Dim objExcel

' Excelのオブジェクトを作成する
Set objExcel = CreateObject("Excel.Application")

 'Excelを見える形で表示させる。
objExcel.Application.Visible = true

' Excelブック①のパスとシート名を選択
objExcel.Workbooks.Open("C:\Users\extan\Documents\excel\wiki抽出.xlsm")
objExcel.worksheets("Sheet1").select

 '実行するマクロ名を指定。
objExcel.Application.Run "wiki検索と抽出"

Set objExcel = Nothing



VBScriptファイルを作成する

スクリプト実装にあたり、VBScriptファイルを作成しましょう。

VBScriptファイルは任意のディレクトリにおいて、Wクリックで実行するようにします。

①任意の場所に新規テキストファイルを作成します。

②テキストファイルに上記スクリプトをコピペします。

③適当なファイル名を入力し、拡張子を「.txt」から「.vbs」へ変更します。
警告メッセージがでましたら「はい」を押してください。

指定Excelブックを開きマクロを実行するスクリプトを実行する

VBScriptを実行するには作成したファイルをWクリックします。

はい!
ブックが起動と同時にマクロが実行されB列に値が挿入されましたね。

指定Excelブックを開きマクロを実行するスクリプトの解説

Excelのオブジェクトを作成します。
Set objExcel = CreateObject(“Excel.Application”)

VisibleプロパティにTrueを設定することで、Excelが目に見える形で表示されます。
Falseを指定するとExcelは表示されませんがバックグラウンドでは実行されます。
objExcel.Application.Visible = true

マクロつきExcelのパスを指定します。
objExcel.Workbooks.Open(“C:\Users\extan\Documents\excel\wiki抽出.xlsm“)

Excel起動後に開きたいシート名を指定します。1シートの場合はコード自体不要です。
objExcel.worksheets(“Sheet1“).select

実行するマクロ名を指定します。
objExcel.Application.Run “wiki検索と抽出



さいごに

いかがでしょうか。
今回はVBScriptで指定Excelブックを開きマクロを実行する方法を紹介しました。

VBSを使うとExcelのマクロを指定し詳細な操作ができることがわかったかと思います。

応用をすればタイムスケジュールを使用してマクロを定期実行することも可能ですので、利用用途が広がりますね。

今後もいろいろな使い方をご紹介していきたいと思います。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です