VBS(Microsoft Visual Basic Scripting Edition)を使えば、ファイルのアイコンをダブルクリックするだけで指定した処理を自動で実行することができます。
ファイルのアイコンというのはこういうやつ↓のことですね。
このファイルは拡張子が「.vbs」という形式になっており、中を開くと VBS で記述されたプログラミングコードが入っているのです。
この VBS を上手に使えば、ファイルアイコンのダブルクリックだけで決まりきった処理を行わせることができるので、大幅な時間短縮に繋げれるケースもあります。
また「VBS でExcel を開いてマクロ(Excel VBA)を実行する」といった処理を行うこともできるので、VBS と Excel VBA を組み合わせて色々と応用を効かせることもできるでしょう。
今日は、上記の「VBS でExcel を開いてマクロ(Excel VBA)を実行する」方法を紹介します。
1、VBS ファイルの作り方
VBS ファイルの作り方
まず VBS ファイルの作り方を説明します。
普通に「メモ帳」を実行しましょう。
実行するとこのような↓白紙のファイルが開くので、ここにコードを書き込むことになります。
必要なコードをこんな感じ↓で書き込んで保存します(コードの中身は後に説明)。
メモ帳を保存したファイルの拡張子は「.txt」です。
この拡張子を「.vbs」に変更しましょう。
これで、VBSファイルができあがります。
VBS ファイルを実行する方法
さて、このようにして作成した VBS ファイルを実行する方法は、ファイルのアイコン↓をダブルクリックするだけです。
VBS ファイルの編集
VBS ファイルを編集するためには「ファイルのアイコンを右クリックして編集を選択」します。
こうすれば普通にファイルが開けるので編集できます。
VBS ファイルをダブルクリックすると実行してしまうので気を付けましょう!
2、Excel ファイルを開いてマクロ(Excel VBA)を実行するVBSコード
VBS ファイルをダブルクリックすると VBSが実行します。
Excel ファイルを開いてマクロ(Excel VBA)を実行するVBSコードを紹介します。
実行するExcel VBA
VBS により呼び出される Excel VBA コードについて説明します。
単純にメッセージボックスだけを表示する以下のコードを Excel ファイル(テストVBA.xlsm)の VBE(エディタ)の標準モジュールに書いておきます。
1 2 3 |
Sub TestVBA() MsgBox "テスト" End Sub |
このExcel ファイル(テストVBA.xlsm)を VBS ファイルと同じフォルダの中に保存しておきます。
VBS コード
以下のVBS コードをメモ帳に記述して普通に保存した後、拡張子を「.txt」から「.vbs」に変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Dim Obj Set Obj = WScript.CreateObject("Excel.Application") Set Path = CreateObject("Scripting.FileSystemObject").GetFolder(".") Obj.Visible = True CreateObject("WScript.Shell").AppActivate Obj.Caption Obj.Workbooks.Open Path & "\テストVBA.xlsm" Obj.Application.Run "TestVBA" |
3、VBS コード説明
VBS コードの説明
1 |
Set Obj = WScript.CreateObject("Excel.Application") |
WScript オブジェクトの CreateObject メソッドを使って、Excel のオブジェクトを作成しています。作成した Excel オブジェクトは変数 Obj の中に格納しています。
1 |
Set Path = CreateObject("Scripting.FileSystemObject").GetFolder(".") |
この VBS ファイルが存在するフォルダのパスを取得して変数 Path に格納しています。
1 2 |
Obj.Visible = True CreateObject("WScript.Shell").AppActivate Obj.Caption |
Obj.Visible = True とすることで、Obj(Excel オブジェクト)が目に見えるようにしています。
CreateObject(“WScript.Shell”).AppActivate Obj.Caption とすることで、Obj(Excel オブジェクト)を最前面に持ってきています。
WshShellオブジェクトの AppActivate メソッドを使っています。このメソッドを使うと指定されたアプリケーションにフォーカスが移ります(指定されたアプリケーションが最前面に来る)。
1 2 3 |
Obj.Workbooks.Open Path & "\テストVBA.xlsm" Obj.Application.Run "TestVBA" |
Obj.Workbooks.Open Path & “\テストVBA.xlsm” によって、Obj(Excel オブジェクト)内にこのVBSファイルと同じフォルダに存在する「テストVBA.xlsm」というファイルを開きます。
Obj.Application.Run “TestVBA” とすることで、この Excel ファイルの「TestVBA」というマクロを実行しています。「TestVBA」については先に示した TestVBA プロシージャを確認して下さい。
実行結果
さて、上記の VBS を実行してみましょう。VBS ファイルの
4、まとめ
VBS については私もこれから色々と勉強していきたいと思います。
Excel VBA と組み合わせて使うことで、様々に応用できる可能性があると考えます。