Add メソッド (VBA)
Collection オブジェクトにメンバーを追加します。
構文
オブジェクト。項目、キー、前、後を追加する
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 メソッドを使用して、 という名前のコレクションMyClasses
にオブジェクト (Public 変数InstanceName
を含むクラスClass1
のインスタンス) を追加Inst
します。 このしくみを確認するには、クラス モジュールを挿入し、 のモジュール レベル Class1
(型Public InstanceName
) で呼び出された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 のサポートおよびフィードバックを参照してください。