Tego typu operacja to mieszanie identyfikatorów z danymi, czyli trybu projektowania z trybem uruchomienia. Technicznie można to oczywiście zrealizować zarówno w VBA, jak i C#, poprzez dynamiczne generowanie kodu lub szablony kodu, jednak takie techniki zarezerwowane są dla problemów, których nie można w inny sposób rozwiązać. W oparciu o opis pytania wydaje się, że bardziej odpowiednie będzie zastosowanie odpowiedniego typu kolekcji np. słownikowej, gdzie kluczem będzie wartość zmiennej, a wartością powiązana tablica. Przykład poniżej:
'add reference to Microsoft Scripting Runtime. Sub Main() Dim dict As Dictionary Set dict = New Dictionary Dim arr(2) As Integer arr(0) = 0 arr(1) = 1 arr(2) = 2 Dim zmienna As String zmienna = "x" dict.Add Key:=zmienna, Item:=arr Debug.Print dict("x")(0) Debug.Print dict("x")(1) Debug.Print dict("x")(2) Set dict = Nothing End Sub
Przed uruchomieniem należy dodać referencję do biblioteki Microsoft Scripting Runtime.
Dodatkowy opis kolekcji Dictionary w artykule KB: