What is the best VBA data type`key`=>`value` to save data same as PHP array What is the best VBA data type`key`=>`value` to save data same as PHP array vba vba

What is the best VBA data type`key`=>`value` to save data same as PHP array


Have you looked at dictionary object?

It's available as part of the Microsoft Scripting Runtime. A clear example of how to add this is given by this SO answer.

Sub DictExample1()Dim dict As DictionaryDim v As Variant    'Create the dictionary              Set dict = New Dictionary   'Add some (key, value) pairs    dict.Add "John", 34    dict.Add "Jane", 42    dict.Add "Ted", 402    'How many items do we have?    Debug.Print "Number of items stored: " & dict.Count    'We can retrieve an item based on the key    Debug.Print "Ted is " & dict.Item("Ted") & " years old"   'We can test whether an item exists    Debug.Print "We have Jane's age: " & dict.Exists("Jane")    Debug.Print "We have Zak's age " & dict.Exists("Zak")    'We can update a value by replacing it   dict.Item("Ted") = dict.Item("Ted") / 10    Debug.Print "Ted's real age is: " & dict.Item("Ted")   'We can add more items    dict.Add "Carla", 23   'And we can iterate through the complete dictionary    For Each v In dict.Keys        Debug.Print "Name: " & v & "Age: "; dict.Item(v)    NextEnd Sub

(Source: http://www.techbookreport.com/tutorials/vba_dictionary.html)


Above answer will not work because of wrong syntax you need to add Scripting Keword before also enable Microsoft Sripting Run TimeI tried it with and Without Sripting. before Dictionary in MS word(2016) and without dosen't work even if you have enabled Microsoft Scripting runtime

 Dim dict As Scripting.Dictionary Set dict = New Scripting.Dictionary dict.Add "John", 34 dict.Add "Jane", 42 dict.Add "Ted", 402 Debug.Print "Number of items stored: " & dict.Count Debug.Print "Ted is " & dict.Item("Ted") & " years old"