Excel VBA

The CreateObject function is used in VBA to instantiate a new instance of an external program or object, providing a reference to interact with it.

CreateObject

 CreateObject関数は、オブジェクト変数を作成し、指定されたプログラムまたはオブジェクトのインスタンスを取得するために使用されます。一般的には、外部プログラムやオブジェクトを VBAコード内で利用するために使います。主に、OLE(Object Linking and Embedding)オブジェクトや COM(Component Object Model)オブジェクトに対して使用されます。

 CreateObject関数の基本構文は以下の通りです。

VBA

Set オブジェクト変数 = CreateObject("プログラム名またはオブジェクト名", [ローカル], [コンテキスト])
オブジェクト変数
作成されるオブジェクトの参照を格納する変数です。Setステートメントを使用してオブジェクト変数に代入します。
プログラム名またはオブジェクト名
作成するオブジェクトのプログラム名またはプログラム内で定義されているオブジェクトの ProgID(Programmatic Identifier)です。たとえば、Excelの場合、"Excel.Application"と指定すると、Excelアプリケーションの新しいインスタンスが作成されます。
ローカル (Optional)
省略可能な引数で、Trueまたは Falseの値を取ります。Trueを指定すると、ローカルコンテキストでオブジェクトが作成され、Falseを指定すると、新しいオブジェクトがリモートコンテキストで作成されます。通常は省略できます。
コンテキスト (Optional)
省略可能な引数で、新しく作成されるオブジェクトのコンテキストを指定します。通常は省略できます。

 以下は、例としてExcelアプリケーションを CreateObject を使用して開くVBAコードの一例です。

VBA

Dim excelApp As Object
Set excelApp = CreateObject("Excel.Application")
excelApp.Visible = True

 このコードは、Excelアプリケーションの新しいインスタンスを作成し、その可視性を設定しています。