サイトについて      連絡先   検索

VBA CreateObject 関数

はじめに

Excel VBA の CreateObject 関数を紹介します。

CreateObject 関数は、ActiveX オブジェクトの参照を作成して返します。

VBA の参照設定をしないで ActiveX オブジェクト (FileSystemObject など) を使用したいときに使用します。

構文

CreateObject(アプリケーション名.クラス名)

名前 説明
引数「アプリケーション名」作成するオブジェクトを持つアプリケーションの名前を指定します。
引数「クラス名」作成するオブジェクトのクラス名を指定します。
戻り値Object 型

解説

オブジェクトをインスタンス化された状態で返します。

作成したオブジェクトの変数に使用後、必ず Nothing を設定します。これを忘れるとオブジェクトが解放されなくなりメモリに残り続けることになります。
Dim o As Object
Set o = CreateObject("Hoge.Hoge")
Set o = Nothing ' 最後に必ず Nothing を設定する

存在しないオブジェクトを作成しようとしたときはエラーが発生します。

アプリケーション名に何を指定したらいいのかは、「CreateObject クラス名」(クラス名には FileSystemObject など)で検索すれば見つけられます。

ActiveX のバージョン毎に参照設定が変更になるとき、CreateObject 関数ではバージョンを気にしないでオブジェクトを使用できます。

ActiveX オブジェクトを使えるようになると、VBA の機能を拡張できます。例えば FileSystemObject を作成すると VBA の標準機能では扱えないファイルシステムの機能が、使用できるようになります。

使用例

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject") ' FileSystemObject がインスタンス化された状態で取得できます。

' FileSystemObject を使った処理
If fso.FileExists("C:\HogeHoge") = True Then

End If

Set fso = Nothing ' 最後に必ず Nothing を設定する

関連ページ