次の方法で共有


Set ステートメント

オブジェクト参照を変数またはプロパティに割り当てます。

構文

Objectvar= {[ New ] objectexpression | Nothing } を設定する

Set ステートメントの構文には、次の指定項目があります。

指定項目 説明
objectvar 必須です。 変数またはプロパティの名前。は、標準変数の名前付け規則に従います。
New オプション。 暗黙的にオブジェクトを作成できるようにするには、通常、宣言時に New を使用します。 NewSet と共に使用されると、クラスの新しいインスタンスが作成されます。 objectvar にオブジェクトへの参照が含まれている場合は、新しい参照が割り当てられたときに、その参照は解放されます。 Newキーワード (keyword) を使用して組み込みデータ型の新しいインスタンスを作成することはできません。また、依存オブジェクトの作成には使用できません。
objectexpression 必須です。 オブジェクトの名前、同じオブジェクトの種類の宣言済みの他の変数、同じオブジェクトの種類のオブジェクトを返す関数またはメソッドで構成されるを指定します。
Nothing 省略可能。 objectvar と特定のオブジェクトとの関係を解除します。 Nothingobjectvar に割り当てると、以前に参照されたオブジェクトに関連付けられているシステム リソースとメモリ リソースがすべて解放されます。他の変数が参照していない場合。

解説

objectvar を有効にするには、objectvar のオブジェクトの種類が objectvar に割り当てられるオブジェクトと一致している必要があります。

Dim ステートメント、Private ステートメント、Public ステートメント、ReDim ステートメント、Static ステートメントは、オブジェクトを参照する変数の宣言のみを行います。 Set ステートメントを使用して特定のオブジェクトを割り当てるまでは、実際のオブジェクトは参照されません。

次の例は、 型Form1を使用して配列を宣言するために Dim を使用する方法を示しています。 No instance of Form1 actually exists. Set then assigns references to new instances of Form1 to the myChildForms variable. Such code might be used to create child forms in an MDI application.

Dim myChildForms(1 to 4) As Form1 
Set myChildForms(1) = New Form1 
Set myChildForms(2) = New Form1 
Set myChildForms(3) = New Form1 
Set myChildForms(4) = New Form1 

通常、Set を使用してオブジェクト参照を変数に割り当てる場合、その変数用にオブジェクトのコピーは作成されません。 代わりに、オブジェクトに対する参照が作成されます。 複数のオブジェクト変数が、同じオブジェクトを参照する可能性があります。 このような変数は、オブジェクトのコピーではなくオブジェクトに対する参照なので、オブジェクトでの変更は、そのオブジェクトを参照するすべての変数に反映されます。 ただし、Set ステートメントで New キーワードを使用すると、実際にオブジェクトのインスタンスが作成されます。

この例では、Set ステートメントを使用してオブジェクト参照を変数に割り当てます。 YourObject は、Text プロパティのある有効なオブジェクトであると見なされます。

Dim YourObject, MyObject, MyStr 
Set MyObject = YourObject    ' Assign object reference. 
' MyObject and YourObject refer to the same object. 
YourObject.Text = "Hello World"    ' Initialize property. 
MyStr = MyObject.Text    ' Returns "Hello World". 
 
' Discontinue association. MyObject no longer refers to YourObject. 
Set MyObject = Nothing    ' Release the object. 

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。