5. 共通モジュールによるOffice製品操作の自動化
それぞれの共通モジュールについて、かんたんな使用方法のサンプルとなるスクリプトも同梱しました。ファイル名の末尾に"_howto"が付加されているファイルがそれです。共通モジュールの使い方については、それらのサンプルをご覧いただくか、もしくは、第1回の記事「VBScriptのテストツールの紹介」、第2回の記事「Webページを扱う共通モジュールの紹介」をご覧ください。
この共通モジュールを利用して、例えば、
- 指定したExcelファイルを読み込んでその内容を取得する
- 指定したファイルをOutlookメールに添付して送信する
- SQL Serverデータベースにアクセスし、指定したテーブルの内容をExcelファイルに転記する
などの操作を自動化するスクリプトがかんたんに作成できます。
たとえば、(3)については前回紹介させていただいたデータベースを操作する共通モジュールにあるRsExcelPrint()にてすでに実装済みです。今回の記事と併せて、そちらもご覧いただければ幸いです。
では、(1)を共通モジュールを使って実装してみましょう。実装したスクリプトは、次のようになります。
Option Explicit
'--------------------------------------------------------------------------------
'<<< 共通モジュール >>>
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Function Include(ByVal strFileName)
Include = fso.OpenTextFile(strFileName, 1, False).ReadAll()
End Function
Execute Include(".\ExcelManager.vbs")
Set fso = Nothing
'--------------------------------------------------------------------------------
'共通モジュール「ExcelManager」をインスタンス化します。
Dim em
Set em = New ExcelManager
'読み込むExcelファイルのファイルパスとシート名を指定します。
em.BookName = "C:\TEMP\sample.xlsx"
em.SheetName = "Sheet1"
'A1セルの値を取得します。
Dim value
value = em.GetRange("A1")
'取得したA1セルの内容をメッセージ表示します。
MsgBox em.GetRange("A1")
'読み込んだExcelファイルを閉じます。
Call em.CloseBook()
Set em = Nothing
上記サンプルは、C:\TEMPフォルダにあるsample.xlsxからSheet1シートのA1セルを読み込み、その内容をメッセージ表示します。
6. まとめ
第1回はVBScriptでテスト駆動開発を行うためのツールを紹介させていただき、第2回から第4回となる今回まで、主にCOMを利用した各種アプリケーションとVBScriptの連携をするための共通モジュールを紹介させていただきました。
VBScriptは、プログラミングの初心者にも非常にとっつきやすい、かんたんなプログラミング環境と言えます。しかし、COMを利用することによって、これまで紹介させていただいたような強力な処理を行うことができるようになります。
実際、VBScriptはコンピューターウィルスを作成するときにも使われてきました。そのため、WSHよりももっとセキュアなWindowsのスクリプト環境であり、次世代シェルと呼ばれた強力なシェル環境でもあるPowerShellが誕生しました。
しかし、第1回の記事の冒頭でも述べたように、PowerShellの誕生から約10年経った今でも、WSHはすべてPowerShellに取って代わられたかというと、そうでもありません。PowerShellには下記の欠点があります。
- 日本語のような2バイト文字の扱いが苦手
- COM操作に関する挙動が不安定
- スクリプトの記述が、今までのどのプログラミング言語と比較しても見慣れないためになじみづらい
これから新たなWindowsのスクリプトを作成する場合でも、PowerShellではなくあえてWSHを選択する場合も多くあることでしょう。
7. 参考資料
- 『Windows自動処理のためのWSHプログラミングガイド』(著者:五十嵐貴之、発売日:2009年06月、発売元:ソシム)
- フリープログラミング団体 いかちソフトウェア
- Office アプリケーションのパスを調べる方法
