SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

まだまだ使える! WSH

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

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

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

 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:添付ファイルを指定します。複数指定する場合は";"で区切ります。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
5. 共通モジュールによるOffice製品操作の自動化

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
まだまだ使える! WSH連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9292 2016/03/08 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング