CreateObject 関数
オートメーション オブジェクトへの参照を作成して返します。
CreateObject(servername.typename [, location])
引数
- servername
必ず指定します。オブジェクトを提供しているアプリケーションの名前を指定します。 - typename
必ず指定します。作成するオブジェクトの種類またはクラスを指定します。 - location
省略可能です。オブジェクトが作成されるサーバーの名前を指定します。
解説
オートメーション サーバーは、少なくとも 1 種類のオブジェクトを提供しています。たとえば、ワード プロセッサであれば、アプリケーション オブジェクト、文書オブジェクト、ツールバー オブジェクトなどが提供されます。
オートメーション オブジェクトを作成するには、CreateObject 関数の戻り値をオブジェクト変数に代入します。
Dim ExcelSheet
Set ExcelSheet = CreateObject("Excel.Sheet")
このコード例では、オブジェクトを提供するアプリケーション (この場合、Microsoft Excel のワークシート) が起動します。定義したオブジェクト変数を使って、コード内で作成されたオブジェクトを参照することができます。次のコードは、ActiveSheet.Cells コレクションの Application オブジェクトに含まれるオブジェクト変数 ExcelSheet
およびその他の Excel オブジェクトを使って、新しく作成されたオブジェクトのプロパティやメソッドを操作する例です。
' Application オブジェクトから Excel のワークシートを表示します。
ExcelSheet.Application.Visible = True
' ワークシートの最初のセルにテキストを入力します。
ExcelSheet.ActiveSheet.Cells(1,1).Value = "この位置は、1 行 A 列目です。"
' ワークシートを名前を付けて保存します。
ExcelSheet.SaveAs "C:\DOCS\TEST.XLS"
' Application オブジェクトの Quit メソッドで Excel を終了します。
ExcelSheet.Application.Quit
' オブジェクト変数を開放します。
Set ExcelSheet = Nothing
リモート サーバー上のオブジェクトの作成は、インターネットのセキュリティが切られている場合のみ行うことができます。コンピュータ名を CreateObject 関数の引数 servername に渡すことで、リモートのネットワークで接続されたコンピュータ上にオブジェクトを作成できます。この名前は、共有名のマシン名の部分と同じです。たとえば、"\\myserver\public" というネットワークの共有名では、"myserver" が servername となります。さらに、DNS 形式または IP アドレスを使用して servername を指定することもできます。
次のコードは、"Myserver" という名前のリモート ネットワーク コンピュータ上で実行されている、Excel のインスタンスのバージョン番号を返す例です。
Function GetVersion
Dim XLApp
Set XLApp = CreateObject("Excel.Application", "MyServer")
GetVersion = XLApp.Version
End Function
指定したリモート サーバーが、ネットワーク上に存在しないか見つからない場合、エラーが発生します。