Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

まだまだ使える! WSHプログラミング ~ Office製品をVBScriptで操作する共通モジュール

まだまだ使える! WSH 第4回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/03/08 14:00

 VBScriptによるプログラミングの開発効率をアップするための共通モジュールを紹介します。今回は、Microsoft Office製品をVBScriptで操作する共通モジュールを紹介します。

目次

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(出典: Office アプリケーションのパスを調べる方法
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:添付ファイルを指定します。複数指定する場合は";"で区切ります。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 五十嵐貴之(イカラシ タカユキ)

    1975年2月生まれ。新潟県長岡市(旧越路町)出身。 フリープログラミング団体いかちソフトウェア所属。   著書 ・これならわかるSQL入門の入門(翔泳社) ・Windows自動処理のためのWSHプログラミングガイド(ソシム) ・いちばんやさしいデータベースの本(技術評...

バックナンバー

連載:まだまだ使える! WSH
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5