スキップしてメイン コンテンツへ

CreateObject 関数

注: 最新のヘルプ コンテンツをできるだけ早く、お客様がお使いの言語で提供したいと考えております。 このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。 私たちの目的は、このコンテンツがお客様の役に立つようにすることです。 お客様にとって役立つ情報であったかどうかを、このページの下部でお知らせください。 簡単に参照できるように、こちらに英語の記事があります。

注: Microsoft Jet Expression Service がサンドボックス モードで実行されている場合 (安全でない可能性がある式の評価は行われません)、このトピックで説明する関数、メソッド、オブジェクト、またはプロパティは無効です。 サンドボックス モードの詳細については、ヘルプで "サンドボックス モード" を検索してください。

ActiveX オブジェクトへの参照を作成して返します。

構文

CreateObject ( class [, servername] )

CreateObject 関数の構文には、次の引数があります。

引数

説明

class

必須。 Variant (String)。 作成するオブジェクトのアプリケーション名とクラスです。

servername

省略可能。 バリアント型 (文字列)。 オブジェクトが作成されるネットワーク サーバーの名前です。 servername が空の文字列 ("") の場合、ローカル コンピューターが使用されます。


class 引数 には、構文 appname.objecttype が使用され、次の項目があります。

項目

説明

appname

必須。 Variant (String)。 オブジェクトを提供するアプリケーションの名前です。

objecttype

必須。 Variant (String)。 作成するオブジェクトの種類またはクラスです。


解説

オートメーションをサポートするすべてのアプリケーションで、少なくとも 1 種類のオブジェクトを提供します。 たとえば、ワード プロセッシング アプリケーションでは、アプリケーション オブジェクト、文書オブジェクト、およびツールバー オブジェクトを提供する場合があります。

ActiveX オブジェクトを作成するには、CreateObject によって返されたオブジェクトをオブジェクト変数に割り当てます。

注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding.
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

この例では、Excel スプレッドシートオブジェクトを Access データベース内から自動化します。 このコードは、オブジェクト (この場合は Microsoft Excel スプレッドシート) を作成するアプリケーションを起動します。 オブジェクトが作成されたら、定義したオブジェクト変数を使用して、コード内でオブジェクトを参照します。 次の例では、オブジェクト変数、ExcelSheet、およびその他の Excel オブジェクト (Application オブジェクト、Cells コレクションなど) を使用して、新しいオブジェクトのプロパティおよびメソッドにアクセスします。

' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True
' Place some text in the first cell of the sheet.
ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"
' Save the sheet to C:\test.xls directory.
ExcelSheet.SaveAs "C:\TEST.XLS"
' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit
' Release the object variable.
Set ExcelSheet = Nothing

_ Z0z_句でオブジェクト変数を宣言すると、任意の種類のオブジェクトへの参照を含むことができる変数が作成されます。 ただし、その変数によるオブジェクトへのアクセスは遅延バインディングです。つまり、プログラムの実行時にバインドが行われます。 事前バインディング (プログラムがコンパイルされたときのバインディング) の結果となるオブジェクト変数を作成するには、特定のクラス ID を使ってオブジェクト変数を宣言します。 たとえば、次の Excel 参照を宣言し、作成することができます。

Dim xlApp As Excel.Application 
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

事前バインド変数を使用する参照は、パフォーマンスが向上する場合がありますが、宣言で指定したクラスの参照しか含めることができません。

CreateObject 関数によって返されるオブジェクトを、引数としてオブジェクトを必要とする関数に渡すことができます。 たとえば、次のコードでは、Excel.Application オブジェクトへの参照を作成して渡します。

Call MySub (CreateObject("Excel.Application"))

コンピューターの名前をCreateObjectservername引数に渡すことによって、リモートネットワークコンピューター上にオブジェクトを作成することができます。 この名前は、共有名のマシン名部分と同じです。たとえば、"\\MyServer\Public" という名前の共有の場合は、"MyServer" という名前が付けられます。

注:  リモート ネットワークのコンピューターにアプリケーションを表示する方法の詳細については、COM ドキュメント (Microsoft Developer Network) を参照してください。 アプリケーションにレジストリ キーを追加する必要がある場合があります。

次のコードは、MyServer という名前のリモート コンピューターで実行されている Excel のインスタンスのバージョン番号を返します。

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

リモート サーバが存在しない場合、または使用できない場合は、実行時エラーが発生します。

注:  現在のオブジェクトのインスタンスがない場合は、CreateObject を使用します。 オブジェクトのインスタンスが既に実行されている場合は、新しいインスタンスが開始され、指定した種類のオブジェクトが作成されます。 現在のインスタンスを使用する、またはアプリケーションを起動してファイルを読み込ませるには、GetObject 関数を使用します。

オブジェクトが単一のインスタンスのオブジェクトとして登録されている場合は、CreateObject が実行される回数に関係なく、そのオブジェクトに 1 つのインスタンスのみが作成されます。

この例では、 CreateObject 関数を使用して、参照 (

xlApp

) を Excel に設定します。 この参照を使用して、Excel の Visible プロパティにアクセスし、Excel の Quit メソッドを使用して終了します。 最後に、参照自体が解放されます。

Dim xlApp As Object    ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application")
' You may have to set Visible property to True
' if you want to see the application.
xlApp.Visible = True
' Use xlApp to access Microsoft Excel's
' other objects.
xlApp.Quit ' When you finish, use the Quit method to close
Set xlApp = Nothing ' the application, then release the reference.
Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する