Microsoft® Visual Basic® Scripting Edition GetObject 関数 |
ランゲージ リファレンス
|
ファイルから取得したオートメーション オブジェクトへの参照を返します。
GetObject([pathname] [, class])
GetObject 関数の構文は、次の指定項目から構成されます。
引数 class は、appname.objectype の形式で指定します。
指定項目 内容 pathname 省略可能です。文字列を指定します。取得するオブジェクトが含まれているファイルの絶対パスおよびファイル名を指定します。引数 pathname に長さ 0 の文字列 ("") を指定した場合は、引数 class も指定する必要があります。 class 省略可能です。文字列を指定します。オブジェクトのクラスを表す文字列を指定します。
指定項目 内容 appname 必ず指定します。文字列を指定します。オブジェクトを提供しているアプリケーションの名前を指定します。 objectype 必ず指定します。文字列を指定します。作成するオブジェクトの種類またはクラスを指定します。
GetObject 関数を使って、ファイルから取得したオートメーション オブジェクトにアクセスしたり、取得したオブジェクトへの参照をオブジェクト変数に代入することができます。 GetObject 関数で取得したオブジェクトをオブジェクト変数に代入するには、Set ステートメントを使います。次に例を示します。
このコードを実行すると、引数 pathname に指定したファイルに関連付けられているアプリケーションが起動され、指定したファイル内のオブジェクトがアクティブになります。引数 pathname に長さ 0 の文字列 ("") を指定すると、GetObject 関数は、指定した種類の新しいオブジェクト (インスタンス) を返します。引数 pathname を省略すると、GetObject 関数は、指定した種類の現在アクティブなオブジェクトを返します。指定した種類のオブジェクトが存在しない場合はエラーが発生します。Dim CADObject Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")ファイルの一部をアクティブにするアプリケーションもあります。ファイルの一部をアクティブにするには、ファイル名の後に感嘆符 (!) を付け、アクティブにする部分を表す文字列をその後に指定します。この文字列の指定方法については、そのオブジェクトを提供するアプリケーションのマニュアルを参照してください。
たとえば、描画アプリケーションでは、1 つのファイルに格納されている描画が、複数の階層に分かれていることがあります。このような場合は、次のように記述すると、SCHEMA.CAD という描画ファイル内の 1 つの階層をアクティブにできます。
オブジェクトの引数 class を指定しない場合、オートメーションが、指定したファイル名に基づいて起動するアプリケーションおよびアクティブにするオブジェクトを決定します。ただし、ファイルによっては複数のオブジェクトのクラスがサポートされています。たとえば、ある描画アプリケーションでは、3 つの異なる種類のオブジェクト、Application オブジェクト、Drawing オブジェクト、および Toolbar オブジェクトがサポートされていて、どのオブジェクトも同じファイル内にあるものと仮定します。このような場合は、引数 class を使って、ファイル内のアクティブにするオブジェクトを指定します。次に例を示します。Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
この例では、FIGMENT は描画アプリケーションの名前で、DRAWING は FIGMENT がサポートしているオブジェクトの種類の 1 つです。 一度、オブジェクトがアクティブになれば、定義したオブジェクト変数を使って、そのオブジェクトを参照できるようになります。上の例の場合、オブジェクト変数 MyObject を使って、アクティブになったオブジェクトのプロパティやメソッドを操作することができます。次に例を示します。Dim MyObject Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")MyObject.Line 9, 90 MyObject.InsertText 9, 100, "Hello, world." MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"
メモ カレント オブジェクトのインスタンスがあるとき、または、既に読み込まれたファイルを使ってオブジェクトを作成するときは、GetObject 関数を使います。カレント オブジェクトのインスタンスがなく、ファイルを使ってオブジェクトを作成しないときは、CreateObject 関数を使います。 複数のインスタンスを作成できないオブジェクトの場合は、何度 CreateObject 関数を実行しても、そのオブジェクトのインスタンスは 1 つしか作成されません。また、複数のインスタンスを作成できないオブジェクトの場合、長さ 0 の文字列 ("") を指定して GetObject 関数を呼び出すと常に同じインスタンスを返し、引数 pathname を省略するとエラーが発生します。