CreateObject関数でオートメーションサーバーのインスタンスを生成する

 オートメーションで外部オブジェクトを制御するためには、まず外部オブジェクトを起動して、そのオブジェクトのインスタンスを作成しなければなりません。その役割を担うのがCreateObject関数です。以下のステートメントは、CreateObject関数でWordを起動するものです。


Dim objWord As Object
Set objWord = CreateObject("Word.Application")
 また、次のようにアプリケーションのバージョンを明示させることもできます。

Dim objWord As Object
Set objWord = CreateObject("Word.Application.9")
 要するに、表1にしたがってCreateObject関数にオートメーションサーバーを指定すれば、Officeアプリケーションを自由にリモートコントロールできるわけです。

表1:オートメーションサーバーのアプリケーション名とオブジェクトの種類

 アプリケーション

 オブジェクトの種類

 クラス

ExcelApplicationExcel.Application
SheetExcel.Sheet
ChartExcel.Chart
WordApplicationWord.Application
AccessApplicationAccess.Application
PowerPointApplicationPowerPoint.Application
OutlookApplicationOutlook.Application

 確かに、CreateObject関数を使ったこのステートメントは、非常に“汎用的”な方法です。しかし、非効率的な方法とも言えます。それではここで、この「汎用性」と「効率性」に話を移しましょう。