A Collection
is a container object that is included in the VBA runtime. No additional references are required in order to use it. A Collection
can be used to store items of any data type and allows retrieval by either the ordinal index of the item or by using an optional unique key.
Collection | Array | Dictionary | |
---|---|---|---|
Can be resized | Yes | Sometimes1 | Yes |
Items are ordered | Yes | Yes | Yes2 |
Items are strongly typed | No | Yes | No |
Items can be retrieved by ordinal | Yes | Yes | No |
New items can be inserted at ordinal | Yes | No | No |
How to determine if an item exists | Iterate all items | Iterate all items | Iterate all items |
Items can be retrieved by key | Yes | No | Yes |
Keys are case-sensitive | No | N/A | Optional3 |
How to determine if a key exists | Error handler | N/A | .Exists function |
Remove all items | Iterate and .Remove | Erase , ReDim | .RemoveAll function |
1 Only dynamic arrays can be resized, and only the last dimension of multi-dimensional arrays.
2 The underlying .Keys
and .Items
are ordered.
3 Determined by the .CompareMode
property.