Windows Script Host(以降、WSH)では、標準でさまざまなオブジェクトを公開しています。これらオブジェクトを利用することで、たとえばテキストファイルの読み書きなどもごく直観的なコードで実現できることは、前回、テキスト読み書き編でも紹介しました。

しかし、WSHで利用できるのは、こうした標準のオブジェクトばかりではありません。たとえば、Microsoft Officeなどが公開するCOM(Component Object Model)オブジェクトを、WSHでは利用できます。COMとは、マイクロソフトが提唱する、プログラムを部品化するための標準的な決まりのことです。COMの決まりにのっとって用意された部品のことを「COMコンポーネント」、または「COMオブジェクト」と言います。

WSHがCOMオブジェクトを利用できるとは、要は、

アプリケーションが自分自身の機能をCOMとして公開していれば、アプリケーションをスクリプトから自由に操作できる

ということなのです。たとえば、「Excelで作られた複数のレポートから必要な情報を抽出して、Word文書としてまとめる」「インターネットから自動収集した内容をExcel表にまとめ、チャートを自動生成する」などといったことも、WSH+COMオブジェクトを利用することで可能になります。COMオブジェクトを利用することで、WSHでできることがぐんと拡がると思いませんか。

さて、今回のExcel連携編では、COM活用の例として、WSHスクリプトからMicrosoft Excelにアクセスする方法を見ていくことにします。紹介するサンプルは、テキスト読み書き編でも取り上げた英単語帳アプリケーションです。

単語帳ツールの実行結果(表示された日本語に対して英単語を入力していくと…)

正解か不正解かを表示

最終的な得点を結果表示

テキスト読み書き編では、英単語データや点数データをテキストファイルで管理していましたが、今回は、これらのデータをExcel表に置き換えてみます。タブ区切りのテキストファイルではなにかと英単語データの編集もしにくかったかもしれませんが、Excelを利用することで作業がよりやりやすく、また、間違いも少なくなります。また、最後には点数の履歴を集計して、Excel上に折れ線グラフを作成してみましょう。