Add メソッド (VBA)
Collection オブジェクトに メンバーを追加します。
構文
object.Add item, key, before, after
Add メソッドの構文には、以下のオブジェクト修飾子および 名前付き引数があります。
パーツ | 説明 |
---|---|
object | 必須です。 評価結果が [適用先] リストのオブジェクトになる オブジェクト式です。 |
item | 必須です。 コレクションに追加するメンバーを指定する任意の型の式です。 |
key | 省略可能。 コレクションのメンバーにアクセスするために位置インデックスの代わりに使用できるキー文字列を指定する一意の文字列式です。 |
before | 省略可能。 コレクション内の相対位置を指定する式です。 追加するメンバーは、before 引数によって識別されたメンバーの前のコレクション内に配置します。 数式の場合、before には、1 以上からコレクションの Count プロパティ値までの数値を指定する必要があります。 文字列式の場合、before は参照されているメンバーがコレクションに追加されたときに指定された key 引数に対応している必要があります。 before 位置または after 位置を指定できますが、両方とも指定することはできません。 |
after | 省略可能。 コレクション内の相対位置を指定する式です。 追加するメンバーは、after 引数によって識別されたメンバーの後のレクション内に配置します。 数式の場合、after には、1 以上からコレクションの Count プロパティ値までの数値を指定する必要があります。 文字列の場合、after は、参照されているメンバーがコレクションに追加されたときに指定される key 引数に対応している必要があります。 before 位置または after 位置を指定できますが、両方とも指定することはできません。 |
解説
before 引数と after 引数は、文字列式であっても数式であっても、コレクションの既存のメンバーを参照している必要があります。参照していない場合はエラーが発生します。
指定した key がコレクションの既存のメンバーの key と重複している場合もエラーが発生します。
例
この例では 、Add メソッドをInst
使用して、オブジェクト ( InstanceName``Class1
Public 変数を含むクラスのインスタンス) をという名前のコレクションに追加します。MyClasses
この動作を確認するには InstanceName
Class1
、クラス モジュールを挿入し、モジュール レベル (type Public InstanceName
) で呼び出されるパブリック変数を宣言して、各インスタンスの名前を保持します。 名前は既定の Class1
のままとします。 次のコードをコピーして、フォーム モジュールの Form_Load
イベント プロシージャに貼り付けます。
Dim MyClasses As New Collection ' Create a Collection object.
Dim Num As Integer ' Counter for individualizing keys.
Dim Msg
Dim TheName ' Holder for names user enters.
Do
Dim Inst As New Class1 ' Create a new instance of Class1.
Num = Num + 1 ' Increment Num, then get a name.
Msg = "Please enter a name for this object." & Chr(13) _
& "Press Cancel to see names in collection."
TheName = InputBox(Msg, "Name the Collection Items")
Inst.InstanceName = TheName ' Put name in object instance.
' If user entered name, add it to the collection.
If Inst.InstanceName <> "" Then
' Add the named object to the collection.
MyClasses. Add item := Inst, key := CStr(Num)
End If
' Clear the current reference in preparation for next one.
Set Inst = Nothing
Loop Until TheName = ""
For Each x In MyClasses
MsgBox x.instancename, , "Instance Name"
Next
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。