VBA - Diziler
Bir değişkenin bir değeri depolamak için bir kap olduğunu çok iyi biliyoruz. Bazen geliştiriciler, aynı anda tek bir değişkende birden fazla değeri tutabilecek konumdadır. Bir dizi değer tek bir değişkende depolandığında, o zamanarray variable.
Dizi Bildirimi
Diziler, bir dizi değişkeninin bildiriminde parantez kullanılması dışında, bir değişkenin bildirildiği şekilde bildirilir. Aşağıdaki örnekte, dizinin boyutu parantez içinde belirtilmiştir.
'Method 1 : Using Dim
Dim arr1() 'Without Size
'Method 2 : Mentioning the Size
Dim arr2(5) 'Declared with size of 5
'Method 3 : using 'Array' Parameter
Dim arr3
arr3 = Array("apple","Orange","Grapes")
Dizi boyutu 5 olarak gösterilse de dizi dizini SIFIR'dan başladığından 6 değer tutabilir.
Dizi Dizini negatif olamaz.
VBScript Dizileri, bir dizide her tür değişkeni depolayabilir. Dolayısıyla, bir dizi, tek bir dizi değişkeninde bir tamsayı, dize veya karakter depolayabilir.
Bir Diziye Değer Atama
Değerler, atanacak değerlerin her birine karşı bir dizi indeksi değeri belirlenerek diziye atanır. Bir dizge olabilir.
Misal
Bir düğme ekleyin ve aşağıdaki işlevi ekleyin.
Private Sub Constant_demo_Click()
Dim arr(5)
arr(0) = "1" 'Number as String
arr(1) = "VBScript" 'String
arr(2) = 100 'Number
arr(3) = 2.45 'Decimal Number
arr(4) = #10/07/2013# 'Date
arr(5) = #12.45 PM# 'Time
msgbox("Value stored in Array index 0 : " & arr(0))
msgbox("Value stored in Array index 1 : " & arr(1))
msgbox("Value stored in Array index 2 : " & arr(2))
msgbox("Value stored in Array index 3 : " & arr(3))
msgbox("Value stored in Array index 4 : " & arr(4))
msgbox("Value stored in Array index 5 : " & arr(5))
End Sub
Yukarıdaki işlevi çalıştırdığınızda, aşağıdaki çıktıyı üretir.
Value stored in Array index 0 : 1
Value stored in Array index 1 : VBScript
Value stored in Array index 2 : 100
Value stored in Array index 3 : 2.45
Value stored in Array index 4 : 7/10/2013
Value stored in Array index 5 : 12:45:00 PM
Çok Boyutlu Diziler
Diziler sadece tek bir boyutla sınırlı değildir, ancak maksimum 60 boyuta sahip olabilirler. İki boyutlu diziler en yaygın kullanılan dizilerdir.
Misal
Aşağıdaki örnekte, çok boyutlu bir dizi 3 satır ve 4 sütunla bildirilmiştir.
Private Sub Constant_demo_Click()
Dim arr(2,3) as Variant ' Which has 3 rows and 4 columns
arr(0,0) = "Apple"
arr(0,1) = "Orange"
arr(0,2) = "Grapes"
arr(0,3) = "pineapple"
arr(1,0) = "cucumber"
arr(1,1) = "beans"
arr(1,2) = "carrot"
arr(1,3) = "tomato"
arr(2,0) = "potato"
arr(2,1) = "sandwitch"
arr(2,2) = "coffee"
arr(2,3) = "nuts"
msgbox("Value in Array index 0,1 : " & arr(0,1))
msgbox("Value in Array index 2,2 : " & arr(2,2))
End Sub
Yukarıdaki işlevi çalıştırdığınızda, aşağıdaki çıktıyı üretir.
Value stored in Array index : 0 , 1 : Orange
Value stored in Array index : 2 , 2 : coffee
ReDim İfadesi
ReDim ifadesi, dinamik dizi değişkenlerini bildirmek ve depolama alanını tahsis etmek veya yeniden tahsis etmek için kullanılır.
Sözdizimi
ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
Parametre Açıklama
Preserve - Son boyutun boyutunu değiştirdiğinizde mevcut bir dizideki verileri korumak için kullanılan isteğe bağlı bir parametre.
Varname - Değişkenin adını belirten ve standart değişken adlandırma kurallarına uyması gereken gerekli bir parametre.
Subscripts - Dizinin boyutunu belirten gerekli bir parametre.
Misal
Aşağıdaki örnekte, bir dizi yeniden tanımlanmış ve ardından dizinin mevcut boyutu değiştirildiğinde değerler korunmuştur.
Note - Başlangıçta olduğundan daha küçük bir dizi yeniden boyutlandırıldığında, elenen öğelerdeki veriler kaybolur.
Private Sub Constant_demo_Click()
Dim a() as variant
i = 0
redim a(5)
a(0) = "XYZ"
a(1) = 41.25
a(2) = 22
REDIM PRESERVE a(7)
For i = 3 to 7
a(i) = i
Next
'to Fetch the output
For i = 0 to ubound(a)
Msgbox a(i)
Next
End Sub
Yukarıdaki işlevi çalıştırdığınızda, aşağıdaki çıktıyı üretir.
XYZ
41.25
22
3
4
5
6
7
Dizi Yöntemleri
VBScript içinde, geliştiricilerin dizileri etkili bir şekilde kullanmalarına yardımcı olan çeşitli dahili işlevler vardır. Dizilerle birlikte kullanılan tüm yöntemler aşağıda listelenmiştir. Detaylı bilgi almak için lütfen metod ismine tıklayınız.
Sr.No. | İşlev ve Açıklama |
---|---|
1 | LBound Verilen dizilerin en küçük alt simge durumuna karşılık gelen bir tamsayı döndüren bir İşlev. |
2 | UBound Verilen dizilerin en büyük alt simge değerine karşılık gelen bir tamsayı döndüren İşlev. |
3 | Bölünmüş Belirtilen sayıda değer içeren bir dizi döndüren bir Function. Bir sınırlayıcıya göre ayırın. |
4 | Katılmak Bir dizide belirtilen sayıda alt dizeyi içeren bir dize döndüren bir İşlev. Bu, Bölme Yönteminin tam tersi bir işlevdir. |
5 | Filtrele Belirli bir filtre kriterine göre bir dize dizisinin bir alt kümesini içeren sıfır tabanlı bir dizi döndüren bir Function. |
6 | IsArray Girdi değişkeninin bir dizi olup olmadığını gösteren bir boolean değeri döndüren bir Function. |
7 | Sil Dizi değişkenleri için ayrılmış belleği kurtaran bir İşlev. |