Share via


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