ExcelでVBAコレクションを使用する方法
コレクションは、配列と同じように(ただし異なる)オブジェクトを格納するデータ型です。基本的なVBAコードを作成するときは、ワークブック、ワークシート、範囲などを使用している必要があります。これらはすべてコレクションです。この記事では、VBAコレクションについて学習します。
VBAのコレクションとは何ですか?
コレクションは、配列と同じように同様のタイプのオブジェクトを格納するデータ型です。ただし、配列とは異なり、サイズは要件に応じて動的に増減できます。
コレクションからアイテムを追加、検索、フェッチ、および削除できます。
配列とは異なり、コレクション内のアイテムの値を変更することはできません。必要に応じて、コレクションのアイテムとして配列を使用します。
コレクションには、4つのプロパティまたはメソッドが関連付けられています。
Collection.Add Collection.Item Collection.Count Collection.Remove
この記事では、これらのプロパティの使用法について説明します。
VBAでコレクションを作成する方法は?
コレクションはオブジェクトであるため、コレクションを宣言して初期化する必要があります。 VBAの他のオブジェクトと同様に、VBAでコレクションを作成する方法は2つあります。
1。インスタント作成
Dim items as new Collection
上記のメソッドでは、オブジェクトは即座に作成されます。要件に合わせてこのコレクションの使用をすぐに開始できます。
2。作成の遅延
Dim items as Collection Set items = New Collection
このメソッドでは、最初にコレクションの参照を作成し、必要に応じてコレクションオブジェクトで初期化します。この方法を使用すると、いくつかの基準に基づいてコレクションを作成することを選択できます。
コレクションへのアイテムの追加(Collection.Add)
Addメソッドを使用して、コレクションに新しいアイテムを追加します。
items.Add "Apples"
上記のコードは、コレクションに文字列「Apples」を追加します。
items.Add 1.4
上記のコードは、コレクションの最後にdouble1.4を追加します。
これらのアイテムのキーを定義することもできます。これらのキーを使用して、コレクション内のアイテムにアクセスできます。
既存のアイテムの前または後にコレクションにアイテムを挿入する
Addメソッドは、コレクションの最後に新しいアイテムを追加します。 addメソッドには4つのパラメーターがあります。
Add(item,[Key],[Before],[After])
最初の引数が必要です。これは、コレクションに追加するオブジェクトまたはオブジェクトです。残りの引数はオプションです。このセクションでは、これらの引数の使用法について説明します。
特定のインデックス/キーの前または後にアイテムを追加する場合は、AddメソッドのBeforeパラメーターとAfterパラメーターを使用します。
items.Add True, "b", "cnst" 'Or items.Add True, Before:="cnst"
どちらの行も、VBAコレクションアイテムのキー「cnst」の前にブール値を挿入します。
特定のインデックス/アイテム/キーの後にアイテムを挿入するには、AddメソッドのAfterパラメーターを使用します。
'inserting "Mango" with key "m" after key "cnst" items.Add "Mango", Key:="m", after:="b"
上記の行では、キー「b」の後にキー「m」が付いた「Mango」が挿入されます。
注:*アイテムのキーは一意である必要があります。コレクションにすでに存在するキーは受け入れられません。 VBAは、「キーは既にこのコレクションの要素に関連付けられています」というエラーを返します。
これを有利に使用して、コレクションから一意のリストを取得できます。
コレクションのアイテムへのアクセス(Collection.Item)
コレクションのアイテムにアクセスするには、2つの方法があります。 。 CollectionName( “インデックス/キー”)
。 CollectionName.Item( “index / key”)
たとえば、インデックス1のコレクションアイテム*のメンバーとキー「apl」にアクセスするには、以下のVBAコードのいずれかを使用できます。
Debug.Print items.Item(1) -- Debug.Print items(1) -- Debug.Print items.Item("apl") -- Debug.Print items("apl")
コレクション内のアイテムの数を取得する方法は? (Collection.Count)
コレクション内のオブジェクトまたはアイテムの総数を取得するには、コレクションの.Count関数を使用します。 .Countメソッドは、コレクション内のアイテムの総数を返します。
items.Count
上記の行は、コレクションに含まれるオブジェクトの数を示しています。
コレクションのすべてのアイテムにアクセスするにはどうすればよいですか?
VBAのコレクションのすべてのアイテムにアクセスする唯一の方法はループです。
コレクションの各アイテムを繰り返し処理して、それらにアクセスします。そのために、forループを使用します。 for-eachループは、コレクションオブジェクトにアクセスするための最も高速でクリーンな方法と見なされています。
VBAのコレクションをループする
VBAでコレクションをループする方法はいくつかあります。コレクションを反復処理するために、各ループに最もエレガントなものを使用します。
コレクションの各アイテムをループしすぎると、このVBAコード行を使用するだけです。
For Each itm In items Debug.Print itm Next itm
コレクションからのアイテムの削除(Collection.Remove)
vbaコレクションからアイテムを削除するには、Removeメソッドを使用できます。 removeメソッドは1つの引数を取ります。アイテムのインデックスまたはキー(使用可能な場合)にすることができます。
items.Remove (1) 'using index -- items.Remove 1 -- items.Remove ("apl") 'using key -- items.Remove "apl"
VBAでコレクションを削除する
ええと、vbaでコレクションを削除することはできません。ただし、新しいコレクションとして再度設定することで、そのコレクションのすべてのアイテムを削除できます。
Set items = New Collection
このコード行は、アイテムのアドレスに新しいコレクションを作成します。
したがって、コレクションは空になります。
VBAでの配列とコレクション
normally.
first.
|
above examples.
directly. |
そうそう、これがコレクションの基本です。オフィスツールでのVBAコレクションには多くの利点と用途があります。それらを一緒に探索します。それまで、コレクションやExcel / VBAに関連するものについて質問がある場合は、以下のコメントセクションに記入してください。