Hash Table/Associative Array in VBA
I think you are looking for the Dictionary object, found in the Microsoft Scripting Runtime library. (Add a reference to your project from the Tools...References menu in the VBE.)
It pretty much works with any simple value that can fit in a variant (Keys can't be arrays, and trying to make them objects doesn't make much sense. See comment from @Nile below.):
Dim d As dictionarySet d = New dictionaryd("x") = 42d(42) = "forty-two"d(CVErr(xlErrValue)) = "Excel #VALUE!"Set d(101) = New Collection
You can also use the VBA Collection object if your needs are simpler and you just want string keys.
I don't know if either actually hashes on anything, so you might want to dig further if you need hashtable-like performance. (EDIT: Scripting.Dictionary does use a hash table internally.)
I've used Francesco Balena's HashTable class several times in the past when a Collection or Dictionary wasn't a perfect fit and i just needed a HashTable.
Try using the Dictionary Object or the Collection Object.
http://visualbasic.ittoolbox.com/documents/dictionary-object-vs-collection-object-12196