EXCEL VBA'DA DECLARE ARRAY [DİZE BİLFİRME]

 

VBA Declare Array değişkenleri bildirmeye çok benzer; ancak dizi değişkenlerinde dizinin sınırını belirlemeliyiz, yani değişkeni bildirirken dizinin boyutuna önceden karar vermeliyiz. Bir dizi aynı türdeki verilerin bir koleksiyonundan başka bir şey değildir.


Düzenli değişkenler ile dizi değişkenleri arasındaki temel fark, dizi değişkenlerinde birden fazla değer, yani dizinin sınırına kadar depolayabilmemizdir. Ancak düzenli değişkenlerde aynı anda yalnızca bir değer depolayabiliriz.

VBA Declare dizisini kullanarak değişkenlerin sayısını sınırlayabiliriz. Örneğin, farklı değişkenlerde beş hayvan ismi saklamak istiyorsanız, beş değişkeni bildirmeniz gerekir. Ancak, VBA declare dizi değişkenleriyle bildirimi bir ile sınırlayabiliriz.

Sub VBA_Declare_Array()
  Dim Animals(1 To 5) As String
End Sub

Örneğin, aşağıdaki koda bakın. Burada, değişken adı "Animal"dır ve dizinin boyutunu 1 ila 5 arasında ayarladık. Beş değerin hepsi yalnızca belirli bir veri türünden olmalıdır, bu durumda String.


  • VBA dizisi çok geniş bir kavramdır; alışmak için epey zaman harcamanız gerekir.
  • Bir dizi değişkenini tek boyutlu olarak tanımlayabileceğimiz gibi, dizinin boyutunu her iki boyutta da belirterek birden fazla boyutta da tanımlayabiliriz.
  • Birden fazla değer ve boyutla çalışmak için döngüleri kullanabiliriz.

Excel VBA Declare Dizisi Nasıl Kullanılır?

VBA Declare dizisini kullanmak için adım adım bir yaklaşım göstereceğiz. Adımları takip edelim.

  1. Makroya isim vererek alt prosedürü başlatın.


    Excel VBA Declare Dizisi Nasıl Kullanılır - Adım 1

  2. 5 hayvan ismi saklamamız gerektiğini varsayalım. Bunun için genellikle beş değişken bildiririz.

    Ancak dizi değişkenlerini kullanarak yalnızca birini bildirebilir ve beşini de aynı değişkene atayabiliriz.

    Bir değişken tanımlayalım ve VBA ile ona bir dize veri türü atayalım. Dize değerleri dizisi bildirelim.

    Excel VBA Declare Dizisi Nasıl Kullanılır - Adım 2

  3. Değişken tanımlandıktan sonra dizinin boyutunu sabitleyerek onu dizi değişkenine dönüştürmemiz gerekiyor.

    Beş hayvan ismini kaydetmemiz gerektiğinden, dizi değişkeninin boyutunu beş olarak sabitleyelim.

    Excel VBA Declare Dizisi Nasıl Kullanılır - Adım 3

    Yukarıdaki sarı renkli alandan da görebileceğiniz gibi parantez içindeki dizi değişkeninin başlangıç ​​ve bitiş noktalarını girdik.

  4. Dizi değişkenine bir değer atamak için değişken adını ve dizinin konumunu girin.

    Örneğin, ilk değeri atadığımız için, aşağıda gösterildiği gibi, ilk değeri dizi değişkenine atamak için parantez içindekini kullanabiliriz. Yani, şimdi dizi değişkeninin ilk pozisyonu "Aslan" hayvan adını içerir.

    Excel VBA Declare Dizisi Nasıl Kullanılır - Adım 4

  5. Önceki adıma benzer şekilde, parantez içindeki seri numarasını değiştirerek kalan dört hayvanın adını atayın.


    Excel VBA Declare Dizisi Nasıl Kullanılır - Adım 5

    Gördüğümüz gibi değişken adı aynı, ancak değerleri atamak için dizinin boyutunu kullandık. Bu nedenle, VBA Declare dizi yöntemini kullanabiliriz.


Excel VBA Declare Dizisinin Örnekleri

VBA Dizi değişkenlerini tanımlama kavramını anlamanız için size farklı örnekler göstereceğiz.

Örnek 1 – Statik Dizi Değişkenleri

VBA'da birden fazla dizi türü vardır . Bunlardan biri statik dizidir, yani dizi değişkeni bildirilirken boyutu önceden tanımlanmış bir dizidir. Bu nedenle, boyut prosedür içinde değiştirilemez. Örneğin, aşağıdaki koda bir göz atın.

Örnek 1 - Adım 1

Bu örnekte, dizi değişkeni "Şehirler" 1'den 3'e kadar üç uzunluğa sahiptir. Sadece 3 dize değerine kadar tutabilir. Bu nedenle, statik dizi olarak adlandırılır.

Benzer şekilde dizi değişkenine bazı değerler atayalım.

Sub VBA_Declare_Array_Ex1()
Dim Cities(1 To 3) As String
Cities(1) = “Washington D C”
Cities(2) = “Kensigton Oval”
Cities(3) = “Sydney Thunder”
Cities(4) = “New York”
MsgBox Cities(1) & vbNewLine & Cities(2) & vbNewLine & Cities(3) & vbNewLine & Cities(4)
End Sub

Dizinin boyutu 3 olmasına rağmen diziye dördüncü bir değer atadık. Kodu çalıştıralım ve ne olacağını görelim.

Örnek 1 - Adım 2

Dizinin boyutu aralık dışında olduğundan, Run-time error '9': Subscript out of range hatasını aldık . Dördüncü değeri kaldırın ve ne olacağını görün.

Sub VBA_Declare_Array_Ex1()
Dim Cities(1 To 3) As String
Cities(1) = “Washington D C”
Cities(2) = “Kensigton Oval”
Cities(3) = “Sydney Thunder”
MsgBox Cities(1) & vbNewLine & Cities(2) & vbNewLine & Cities(3)
End Sub

Kodu çalıştırdığımızda dizi değerlerini bir mesaj kutusunda görebiliriz.

Excel VBA Dizi Bildirme - Örnek 1 - Adım 3

İşte bu kadar basit! Burada sabit bir uzunluk kullandığımızda statik bir dizi haline geliyor ve belirlenen sınırın ötesinde değerler atıyoruz.

Örnek 2 – Dinamik Dizi (VBA Boyut Olmadan Diziyi Bildirir)

Önceki örnekte, bir dizinin boyutu ayarlandığında statik bir dizi haline geldiğini gördük. Ancak, değişkeni bildirirken herhangi bir boyut atamayarak diziyi dinamik de yapabiliriz.

Dinamik dizi değişkeniyle, çalışma zamanı sırasında dizinin boyutunu değiştirebiliriz. Bunun için, değişkene boyutu atamadan değişkeni bildirmeliyiz.

Örneğin aşağıdaki koda bakın.

Örnek 2 - Adım 1

Parantez içinde görebileceğimiz gibi, dizi değişkenine herhangi bir boyut atamadık. Dizinin oluşturulduktan sonraki boyutuna karar vermek için “ReDim” ifadesini kullanabiliriz.

Excel VBA Dizi Bildirme - Örnek 2 - Adım 2

Şimdi, dizi boyutu 5 için, 0'dan başlayarak en fazla 6 değer atayabiliriz veya 1'den başlayarak yalnızca beş değer atayabiliriz.

Dinamik diziyi kullanmanın güzelliği, bunları istediğimiz zaman yeniden boyutlandırabilmemizdir. Ancak, ReDim ifadesini ikinci kez kullandığımızda var olan tüm değerler silinecektir. Bu nedenle, yalnızca ReDim ifadesi yerine ReDim Preserve ifadesini kullanabiliriz . ReDim Preserve, var olan tüm değerleri koruyacaktır.


Örnek 3 – İki Boyutlu Diziler

Şimdiye kadar yalnızca tek boyutlu diziyi gördük. Ancak hem satırlarla hem de sütunlarla uğraşmamız gerektiğinde, iki boyutlu bir dizi kullanmalıyız. Bunu daha ayrıntılı inceleyelim. Örneğin, Excel'deki aşağıdaki verilere bakın.

Excel'de VBA Dizisini Bildirme - Örnek 3

7 satırımız (ilk satırdaki başlıklar hariç) ve 3 sütunumuz var. Bir sütunun tüm değerlerini depolamak için, Excel'deki veri tablosundaki satır sayısına eşit boyutta bir dizi değişkeni tanımlayabiliriz .

Örnek 3 - Adım 1

Yedi satır verimiz olduğundan, dizinin boyutunu 7 olarak ayarladık. Ancak, yedi satırla birlikte üç sütunumuz var. Bu nedenle, başka bir dizi değişkeni tanımlamak yerine, dizinin ikinci boyutunun boyutunu sütun numarası boyutuna ayarlayalım.

Örnek 3 - Adım 2

Artık bu iki boyutlu bir dizi değişkeni haline geldi.

Excel tablo değerlerini bu dizi değişkeninde saklayabiliriz. Bunun için döngüler kullanmamız gerekir. Döngüyü başlatmak için iki değişken daha bildirelim.

Örnek 3 - Adım 3

Aşağıdaki kodu kullanarak tablo değerlerini bir sayfadan diğerine kopyalayacağız.

Örnek 3 - Adım 4

Sub VBA_Declare_Array_Ex3()
'İki boyutlu bir değişken tanımlayın
'İlk boyut satır sayısına eşittir
'İkinci boyut sütun sayısına eşittir
Dim k(1 To 7, 1 To 3) As String
'Döngüyü başlatmak için iki değişken tanımlayın
Dim i As Long
Dim j As Long
'Döngüyü ilk sütun değerleri için başlatın
For j = 1 To 3
'Satır değerlerini almak için başka bir döngü başlatın
For i = 2 To 7
'Insights Summary çalışma sayfasında değerlerimiz var, bu nedenle bu çalışma sayfasını seçin
Worksheets(“Insights Summary”).Select
k(i, j) = Cells(i, j).Value
'Değerleri Hedef Sayfaya yapıştırmamız gerekiyor, bu nedenle bu çalışma sayfasını seçin
Worksheets(“Target Sheet”).Select
Cells(i, j).Value = k(i, j)
Sonraki i
Sonraki j
End Sub

Şimdi bu kod, verileri “Özet” çalışma sayfasından “Hedef Sayfasına” kopyalayacaktır.

Excel'de VBA Dizisini Bildirme - Örnek 3 - Adım 5

Bu şekilde dizi değişkenlerinden faydalanabilir ve verileri saklamak için birden fazla değişken tanımlamaktan kaçınabiliriz.

Dikkat Edilmesi Gereken Önemli Noktalar

  • VBA'da dizi boyutu sabit olduğunda , dizi değişkenine belirtilen boyut kadar değer atayabiliriz. Daha fazla değer atamaya çalışırsak, o zaman dizin aralık dışı hatası alırız.
  • ReDim ifadesini birden fazla kullanırsak, mevcut değerleri kaybetmemiz olasıdır. Ancak, ReDim Preserve'i kullanabilirsek, dizi değişkeninin mevcut değerlerini koruyabiliriz.
  • Dizi değişkeninin adı, bildirilirken kullanılan isimle tam olarak aynı olmalıdır. Aksi takdirde hata alırız.
  • Statik bir dizide, değişkenin boyutu bir kez ayarlandıktan sonra çalışma zamanı boyunca bunu değiştiremeyiz.

1. VBA'da boyutunu belirtmeden bir dizi tanımlayabilir miyim?

Evet, boyutunu belirtmeden bir dizi bildirebiliriz ve buna dinamik dizi denir. Ancak, aynı alt prosedürde daha sonra ReDim ifadesini kullanarak çalışma zamanı sırasında dizinin boyutuna karar verebiliriz.

2. VBA'da dizelerden oluşan bir diziyi nasıl bildiririm?

VBA'da bir dize dizisi aşağıdaki gibi bildirilebilir.

Dim Str_Var(7) As String

Dizi dizini 0'dan başlar. Ayrıca boyutu belirtmeden dinamik bir dizi de bildirebilirsiniz.

Dim dynamicArray() As String

3. VBA'da dizi tanımlama işlemi neden çalışmıyor?

VBA bildirim dizisinin çalışmamasının muhtemel nedeni boyutudur. Örneğin, aşağıdaki koda bakın.

Dim MyVar (1 to 2) As String

"MyVar" değişkeni için, 2'ye kadar dize değeri atayabiliriz; 3. dize değerini eklemeye çalışırsak, o zaman dizin aralık dışı hatası verecektir.

Yorum Gönder

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