Excel'deki VBA Dizileri işlevi, benzer veri türünün birden fazla değerini depolayan bir değişken olarak tanımlanabilir. VBA Excel'de dokuz farklı dizi işlevi mevcuttur. Bunlara ARRAY, ISARRAY, JOIN, REDIM, SPLIT, ERASE, FILTER, LBOUND ve UBOUND dahildir.
VBA dizi fonksiyonunu aşağıdaki gibi yazıyoruz:
Dizi( arglist )
Burada, arglist virgülle ayrılmış bir öğe listesini belirtir. Hiçbir argüman geçilmezse, sıfır uzunlukta bir dizi oluşturulur.
Önemli Noktalar
- Excel'deki VBA Dizi fonksiyonu, aynı veri türündeki değerleri bir değişkende depolamanın basit bir yoludur.
- VBA Dizi fonksiyonları temel olarak iki tiptedir: Statik ve Dinamik.
- Statik Dizi: Dizinin uzunluğu önceden belirlenir. Örneğin, bir haftadaki gün sayısı, aylar, Hindistan'ın mevsimleri vb.
- Dinamik Dizi: Dizinin uzunluğu sabit değildir ve önceden belirlenmemiştir.
- VBA Array fonksiyonunu kullanarak özelleştirilmiş bir Excel fonksiyonu oluşturabiliriz. Kodun yazılmasını ve bakımını kolaylaştırır.
VBA Dizi Fonksiyonları Nasıl Kullanılır ?
Excel'de VBA Dizileri İşlevini anlamak için basit bir örnek ele alalım. Burada, VBA Dizileri işlevini kullanarak Dize değerlerinin nasıl depolanacağına bakıyoruz. VBA modülünü açın ve aşağıdaki VBA kodunu yazın :
Adım 1: Burada, dizimizi atamak için bir Arr değişkeni bildiriyoruz ve değişken bir veri türünün değerlerini içine depolamak için Array fonksiyonunu kullanıyoruz. Daha sonra, bir ileti kutusu kullanarak dizinin elemanlarını, uzunlukları da dahil olmak üzere yazdırıyoruz.
Sub VBA_Array_Example()
Dim Arr As Variant
Arr = Array(“VBA”, “Programming”, “Lanaguage”, “Excel”)
MsgBox Arr(0) & ” ” & Arr(1) & ” ” & Arr(2) & ” ” & Arr(3)
MsgBox “Array Length: ” & UBound(Arr) – LBound(Arr) + 1
End Sub
Adım 2: Kodu çalıştırın; aşağıdaki sonucu görün. İlk sonuçtan sonra OK'e tıkladığınızda, dizenin uzunluğunun sonucunu görebilirsiniz.

Örnekler
Excel'de VBA Dizi Fonksiyonunun farklı şekillerde nasıl kullanılacağına dair bazı örneklere bakalım.
1 – Statik Dizi Kullanarak Seri Numaraları Ekleme
Statik bir dizide, dizinin uzunluğu önceden belirlenir. Statik bir diziye seri numaralarını kolayca ekleyebiliriz.
Adım 1 : Aşağıdaki kodu yazın:
Sub StaticArray_Ex()
Dim x(1 To 10) As Integer
x(1) = 5
x(2) = 10
x(3) = 15
x(4) = 20
x(5) = 25
x(6) = 30
x(7) = 35
x(8) = 40
x(9) = 45
x(10) = 50
Range(“A1”).Value = x(1)
Range(“A2”).Value = x(2)
Range(“A3”).Value = x(3)
Range(“A4”).Value = x(4)
Range(“A5”).Value = x(5)
Range(“A6”).Value = x(6)
Range(“A7”).Value = x(7)
Range(“A8”).Value = x(8)
Range(“A9”).Value = x(9)
Range(“A10”).Value = x(10)
End Sub
Açıklama:
- Burada, on değeri saklamak için x dizi değişkenini tanımlıyoruz .
- Dizi değişkeninin her bir elemanı VBA veri türü olan Integer değerini saklayabilir .
- Dizi elemanlarının her birine değerler atayıp bunları A1'den A10'a kadar Excel hücrelerine ekliyoruz.

Adım 2: Kodu çalıştırdığımızda A1-A10 hücrelerinde değerlerin gösterildiğini görebiliriz.

2 – Dinamik Dizi Kullanarak Seri Numaraları Ekleme
Dinamik bir dizide, dizinin uzunluğu önceden belirlenmemiştir. Yukarıdaki örneği dinamik bir dizi için ele alalım.
Adım 1: Aşağıdaki kodu yazın:
Alt DynamicArray_Ex()
Dim x() As Integer
ReDim x(10)
x(1) = 5
x(2) = 10
x(3) = 15
x(4) = 20
x(5) = 25
x(6) = 30
x(7) = 35
x(8) = 40
x(9) = 45
x(10) = 50
Range(“A1”).Value = x(1)
Range(“A2”).Value = x(2)
Range(“A3”).Value = x(3)
Range(“A4”).Value = x(4)
Range(“A5”).Value = x(5)
Range(“A6”).Value = x(6)
Range(“A7”).Value = x(7)
Range(“A8”).Value = x(8)
Range(“A9”).Value = x(9)
Range(“A10”).Value = x(10)
End Sub
Açıklama:
Bu kodda, Dizi uzunluğu önceden belirlenmemiştir. Bu nedenle, uzunluğu atamak için VBA ReDim İşlevini kullandık.
Dim x() As Integer
ReDim x(10) [Yeniden Boyutlandırma x(10)]

Adım 2: Kodu çalıştırdığımızda A1-A10 hücrelerinden sonucu göreceğiz.

3 – Dizi Kullanarak Ay Adlarını Ekleyen Bir Fonksiyon Oluşturun
Burada Excel'de VBA Dizi Fonksiyonu kullanılarak "Ay adları" VBA fonksiyonunun nasıl oluşturulacağını göreceğiz.
Adım 1: Aşağıdaki kodu VBA Editörüne yazın.
Name_Of_Months = Array(“January”, “February”, “March”, “April”, “May”, “June”, “July”, “August”, “September”, “October”, “November”, “December”)
End Function
VBA'da Name_of_Months fonksiyonu oluşturulur ve ona bir dizi eleman atanır. Burada, Array fonksiyonu Ocak'tan Aralık'a kadar ayların adını tutar.

Adım 2: Kodu .xlsm formatında kaydedin ve çalıştırın.
Adım 3: Şimdi, geçerli etkin Excel sayfamıza gideceğiz ve A1 hücresine =ayların adı yazacağız ve oluşturduğumuz işlevi göreceğiz. İşlevi seçin ve Enter'a basın. Sonucu yalnızca Ocak olarak göreceğiz.

Bu nedenle, oluşturulan tüm ay adlarını elde etmek için, bir satırda 12 hücre seçmemiz gerekir. Sonra, A1 hücrelerindeki Fonksiyon Adlarını kullanın ve Ctrl+Shift+Enter tuşlarına basın.
Artık Ocak ayından Aralık ayına kadar olan tüm ayları A1-L1 hücrelerinde bulacağız.

Dikkat Edilmesi Gereken Önemli Noktalar
- Excel'deki VBA Diziler fonksiyonu, belirli bir veri türünün birden fazla değerini değişkende depolamak/tutmak için kullanılır.
- Excel'deki VBA Dizi Fonksiyonu, VBA ARRAY, ERASE, FILTER, ISARRAY, JOIN, LBOUND, REDIM, SPLIT ve UBOUND olmak üzere dokuz farklı fonksiyona sahiptir.
- ARRAY: Verilen değerlere sahip bir dizi döndürür.ERASE: Dizi elemanlarını yeniden başlatır.
- FİLTRE: Değerlerin bir alt kümesine sahip bir dizi döndürür (Değişken)
- ISARRAY: Değeri Boolean ifadesi (True veya False) olarak döndürür
- JOIN: Bir dizideki tüm elemanları içeren bir String (Metin) döndürür.
- LBOUND: Long veri tipindeki dizinin en küçük dizisini döndürür.
- ReDim: Dinamik dizideki bir dizinin uzunluğunu atar.
- SPLIT: Belirtilen sayıda varyant içeren bir dizi döndürür.
- VBA UNBOUND : Long veri tipindeki dizinin en büyük dizisini döndürür.
- Excel'de iki tane daha VBA Dizi Fonksiyonu mevcuttur, bunlar iki boyutlu dizi (uzunluk yalnızca iki boyutta belirlenir) ve çok boyutlu dizidir (uzunluk birden fazla boyutta belirlenir).
- Bir dizi değerlerin sayımına sıfırdan başlar. Dizi (0,0) ilk satırı ilk sütunu belirtir.
- Excel'de VBA Dizi Fonksiyonu çalışmıyor, var olmayan bir konuma eriştiğimizde meydana geliyor.
Excel'deki VBA Dizileri İşlevinde, bir Excel dosyası makro etkinleştirilmiş çalışma kitabı (.xlsm) olarak kaydedilmelidir.
Diziler, belirli bir veri türünün birden fazla değerini bir değişkende depolayan bir "bellek konumu"dur. Excel VBA'daki diziler işlevi, kod yazmayı ve sürdürmeyi kolaylaştırır.
Bir dizi tanımlanmışsa, verileri daha kısa sürede alabilir, sıralayabilir ve değiştirebiliriz.
• Dizi fonksiyonunu kullanarak VBA'da Dizi oluşturmak için lütfen aşağıdaki adımları izleyin:
• Yeni bir Microsoft Excel çalışma kitabı açın ve Excel Makro Etkin Çalışma Kitabı (.xlsm) olarak kaydedin
• Bir VBA düzenleyicisi açmak için Geliştirici seçeneğine tıklayın ve Visual Basic Application (VBA) seçeneğini seçin veya doğrudan Alt+F11 kısayol tuşlarını kullanabilirsiniz.
• VB düzenleyici penceresinde Ekle'yi seçin ve yeni bir modül açmak için Şerit sekmesinde yeni bir modüle tıklayın.
• Modülde, bir dizi oluşturmak için kodumuzu yazabiliriz.
Örneğin:
Sub VBA_Array_Example1()
Burada, değişken dizimizi depolamak için tanımlanmıştır.
Dim Arr As Variant
Dizinin tüm istenen elemanlarını yazın.
End Sub
• VBA şeridindeki Çalıştır seçeneğine veya F5 tuşuna tıklayarak kodu çalıştırın ve sonucu hücrelerdeki veya mesaj kutusunda etkin çalışma kitabında görün.
Evet, VBA Dizi fonksiyonu belirli bir veri türüne sahip dizinin bir varyantını döndürür.
