EXCEL VBA ARRAY (DİZİ) FONKSİYONU

 

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.

VBA Dizileri Giriş - Çıktı

Ö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.
VBA dizileri İşlevi - Örnek 1 - Kod

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

VBA dizileri İşlevi - Örnek 1 - Çıktı

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)]

VBA dizileri İşlevi - Örnek 2 - Kod

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

VBA dizileri İşlevi - Örnek 2 - Çıktı


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.


Function Name_Of_Months()
Name_Of_Months = Array(“January”, “February”, “March”, “April”, “May”, “June”, “July”, “August”, “September”, “October”, “November”, “December”)
End Function

AÇIKLAMA

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.

VBA dizileri İşlevi - Örnek 3 - Kod

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.

Örnek 3 - Adım 3

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.

Örnek 3 - Adım 3 - Çıktı

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.


1. Excel VBA'da Diziler fonksiyonu neden kullanılır?

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.

2. VBA'da dizi fonksiyonu kullanılarak dizi nasıl oluşturulur?

 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.

3. Bir Excel VBA fonksiyonu bir dizi döndürebilir mi?

Evet, VBA Dizi fonksiyonu belirli bir veri türüne sahip dizinin bir varyantını döndürür.




Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...