SHOEISHA iD

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

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

まだまだ使える! WSH

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

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

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

 それぞれの共通モジュールについて、かんたんな使用方法のサンプルとなるスクリプトも同梱しました。ファイル名の末尾に"_howto"が付加されているファイルがそれです。共通モジュールの使い方については、それらのサンプルをご覧いただくか、もしくは、第1回の記事「VBScriptのテストツールの紹介」、第2回の記事「Webページを扱う共通モジュールの紹介」をご覧ください。

 この共通モジュールを利用して、例えば、

  1. 指定したExcelファイルを読み込んでその内容を取得する
  2. 指定したファイルをOutlookメールに添付して送信する
  3. SQL Serverデータベースにアクセスし、指定したテーブルの内容をExcelファイルに転記する

 などの操作を自動化するスクリプトがかんたんに作成できます。

 たとえば、(3)については前回紹介させていただいたデータベースを操作する共通モジュールにあるRsExcelPrint()にてすでに実装済みです。今回の記事と併せて、そちらもご覧いただければ幸いです。

 では、(1)を共通モジュールを使って実装してみましょう。実装したスクリプトは、次のようになります。

sample.vbs(※同一ディレクトリにExcelManager.vbsを置いておきます)
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. 参考資料

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

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
まだまだ使える! WSH連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9292 2016/03/08 14:00

おすすめ

イベント

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

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

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

メールバックナンバー