1. はじめに
本連載では、VBScriptで開発した共通モジュールを紹介しています。
初回では、VBScriptをテスト駆動開発するためのツールを紹介させていただきました。また、第2回では、Microsoft社のInternet Explorerを操作して指定したWebページを開いたりHTMLを取得する共通モジュールを紹介し、第3回ではリレーショナルデータベース(Microsoft SQL Server/Microsoft Access)に接続し、SQLを実行してその結果を取得するための共通モジュールを紹介しました。
今回は、Microsoft Office製品をVBScriptで操作する共通モジュールを紹介します。たとえば、その共通モジュールを利用することで、Excelファイルの指定したセルから値を取得したり、Wordファイルの内容を読み込んだり、Outlookメールを利用してメールを送信するプログラムが簡単に作れるようになります。
2. 対象読者
- WSH(VBScript)での開発を行っているプログラマー、システム管理者
3. 必要な環境
- Windows OS全般
4. Office製品を操作する共通モジュール
Microsoft Officeの操作についても、第2回で紹介させていただいたInternet Explorerの操作や第3回で紹介させていただいたデータベースの操作と同様に、COMを利用します。
Microsoft Officeを操作する場合のCOMは、CreateObject()関数で使用する引数に、次のProgIDを指定します。
ProgID | 対象となるアプリケーション |
---|---|
Access.Application | Microsoft Access |
Excel.Application | Microsoft Excel |
Outlook.Application | Microsoft Outlook |
Powerpoint.Application | Microsoft PowerPoint |
Word.Application | Microsoft Word |
FrontPage.Application | Microsoft FrontPage |
ところで、ProgIDとは、COMを利用する際に指定する文字列のことです。利用するCOMから呼び出されるアプリケーションを一意に識別するための文字列型のIDです。今までの記事では何の説明もなく使用していましたが、例えばInternet Explorerの場合は"InternetExplorer.Application"、ADOの場合は"ADODB.Connection"などがProgIDに該当します。
今回ご紹介させていただく共通モジュールは、以下のURLからダウンロードできます。
今回使う共通モジュールは、以下の3つです。
- Microsoft Excelを扱う共通モジュール...ExcelManager.vbs
- Microsoft Wordを扱う共通モジュール...WordManager.vbs
- Microsoft Outlookを扱う共通モジュール...OutlookManager.vbs
これら3つの共通モジュールが提供するメンバは、それぞれ次のとおりです。
ExcelManagerのメンバ
Messageプロパティ
エラーなどのメッセージを返します。
object.Message
BookNameプロパティ
Excelブック名を指定します。値の取得も可能です。
object.BookName
SheetNameプロパティ
Excelブック名を指定します。値の取得も可能です。
object.BookName
CloseBookメソッド
BookNameプロパティに指定されているExcelブックを閉じます。正常に閉じた場合は、真(true)を返します。正常に閉じれなかった場合は、偽(false)を返します。
object.CloseBook()
GetCellメソッド
Excelセルの列インデックスと行インデックスを指定して、該当する値を取得して返します。取得できなかった場合は、偽(false)を返します。
object.GetCell(intRow, intCol)
パラメータ
- intRow:データソース名を指定します。
- intCol:ユーザー名を指定します。
GetRangeメソッド
ExcelセルのRangeを指定して、該当する値を取得して返します。取得できなかった場合は、偽(false)を返します。
object.GetRange(strRange)
パラメータ
- strRange:データソース名を指定します。
WordManagerのメンバ
Messageプロパティ
エラーなどのメッセージを返します。
object.Message
DocNameプロパティ
ドキュメント名を指定します。値の取得も可能です。
object.DocName
CloseDocumentメソッド
DocNameプロパティに指定されているドキュメントを閉じます。正常に閉じた場合は、真(true)を返します。正常に閉じれなかった場合は、偽(false)を返します。
object.CloseDocument()
GetTextメソッド
ドキュメントからテキストを取得して返します。
object.GetText()
OutlookManagerのメンバ
Messageプロパティ
エラーなどのメッセージを返します。
object.Message
SendMailメソッド
テキストメールを送信します。正常に送信できた場合は、真(true)を返します。正常に送信できなかった場合は、偽(false)を返します。
object.SendMail(strTo, strCC, strBCC, strSubject, strBody, strAttach)
パラメータ
- strTo:宛先を指定します。複数指定する場合は";"で区切ります。
- strCC:CC先を指定します。複数指定する場合は";"で区切ります。
- strBCC:BCC先を指定します。複数指定する場合は";"で区切ります。
- strSubject:件名を指定します。
- strBody:本文を指定します。
- strAttach:添付ファイルを指定します。複数指定する場合は";"で区切ります。
UploadMessageメソッド
パブリックフォルダにメッセージを投稿します。正常に投稿できた場合は、真(true)を返します。正常に投稿できなかった場合は、偽(false)を返します。
object.UploadMessage(strFolder, strCategory, strSubject, strBody, strAttach)
パラメータ
- strFolder:投稿先を指定します。階層を";"で区切ります。
- strCategory:カテゴリを指定します。
- strSubject:件名を指定します。
- strBody:本文を指定します。
- strAttach:添付ファイルを指定します。複数指定する場合は";"で区切ります。