Windows XP Server Pack 2(SP2)は遅くとも今秋には出荷されるようです(参照記事)。そこで今回からは,前回紹介したSP2評価ツールとMicrosoft Excelを連携し,評価ツールの機能強化を試みます。
Excelを起動するサンプル・プログラム
図1●サンプル・プログラムの実行結果(Excelがインストールされている場合) |
図2●サンプル・プログラムの実行結果(Excelがインストールされていない場合) |
今回は,Excelを初めて使用することもあり,このような単純な情報を表示し,Excelに接続できることを証明するにとどめています。次回からは,Excel上にSP2情報を表示していきます。
サンプル・プログラムを作るための知識の収集
事前に申し上げておきたいことが1つあります。2004年7月6日現在,筆者はMicrosfot Excel(Excel)に関しては,初心者ユーザーの立場であるということです。過去に1,2度Excelを使用した経験はあるのですが,本格的に利用し始めたのはこの1週間ほどです。Excelを一切知らない筆者は,基礎知識を求めて次のような行動に出ました。
まず,マイクロソフト日本法人のこちらのサイトを訪問し,Excelが公開するオブジェクトを調べました。多数のオブジェクトを時間をかけて学ぶ覚悟はしていたのですが,意外なことに,そのサイトは,次の4つのオブジェクトを紹介しているにすぎませんでした。
- Excel Applicationオブジェクト
- Excel Workbookオブジェクト
- Excel Worksheetオブジェクト
- Excel Rangeオブジェクト
ベテランExcelユーザから見れば,「君の考えは甘い」ということになるでしょうが,筆者の気が軽くなったのは間違いないことでした。こちらのサイトは,多数のサンプル・コードを公開しています。しかし,すべてのサンプルは.NET言語で記述されています。
筆者はあくまでも簡易言語であるVBScriptを使用したいと考えていましたから,VBScriptのサイトを訪問し,適当なサンプル・コードが公開されていないかどうかを調べました。筆者は最終的に,次のようなサンプル・コードを見つけ出しました。
Dim ExcelSheet
Set ExcelSheet = CreateObject("Excel.Sheet")
図3●Excelのオブジェクトにアクセスするために必要な情報 |
この情報を見つけ出したとき,筆者は「これでこれまでの経験から,Excelを自分なりに使える」と自信を持ちました。詳しい理由は今後の連載で詳しく紹介していく予定です。ちなみに,この「Excel.Application」オブジェクトは,次のように解釈できます。
「Excel.Applicationオブジェクトは,Excelという名前空間に含まれるApplicationオブジェクトのことである。Applicationオブジェクトというのは,通常,所属名前空間のルート・オブジェクトに付けられる名前であることが多い。このため,ルートオブジェクトが分かれば,Excel.Sheetオブジェクトなどの他の下位オブジェクトにアクセスし,多数の公開機能を操作できるようになる」。
その他の機能変更
前回はSP2NameSpacesという名前のクラスを作成し,プログラムの保守性や拡張性を向上させていました。今回は,SP2NameSpacesクラスを直接拡張するのではなく,次のように新しいクラスを作り,その中にSP2NameSpacesクラスを含めるようにしました。
Class New31WithExcel
Private oOld
Private oAppX
Private Sub Class_Initialize
Set oOld = New SP2NameSpaces
Set oAppX = CreateObject("Excel.Application")
End Sub
Public Property Get getOldClass()
Set getOldClass = oOld
End Property
Public Property Get getExcelNameSpace()
Set getExcelNameSpace = oAppX
End Property
Private Sub Class_Terminate
Set oOld = Nothing
Set oAppX = Nothing
End Sub
End Class
このNew31WithExcelクラスは,ソースコードを見ると分かるように,最初に実行されるClass_Initializeサブルーチン内で既存クラスSP2NameSpacesのインスタンスを作成しています。結論を急げば,新しいNew31WithExcelクラス内部に既存クラスSP2NameSpacesを含めたことにより,従来のメイン・ルーチン部分をそのまま生かすことができました。興味のある方はソースコードをダウンロードし,ご自分の目で確認してください。
Excelを日々使用しながら研究してみると,膨大な数の機能が用意されていることが分かります。しかも,それらの機能は比較的簡単に使えそうな印象を受けます。今後の連載では,クラスを拡張しながら,Excel機能もどんどん紹介したいと思います。Excelを使用したいがそれを学習する時間がない,と悩んでいる方は,ぜひ,これからの連載をお読みください。
今回のまとめ
- SP2正式版が今秋にもリリースされる
- 2つの独立したクラスは関連付けて使用することができる
- Excelへの接続は簡単である
- Excelは豊富な機能を提供している
今回は以上で終了です。次回またお会いいたしましょう。ごきげんよう!