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 のサポートおよびフィードバックを参照してください。