
- VBA LBOUND, “Alt Sınır” anlamına gelir. Bir dizi değişkeninin en düşük sınırını bulmak için kullanılır.
- Bir dizi değişkeninin başlangıç pozisyonuna göre döngüyü başlatmak için VBA LBOUND fonksiyonunu kullanabiliriz.
- VBA LBOUND UBOUND, döngü uzunluğunu dinamik olarak belirlemek için birleştirilebilir.
- Çok boyutlu dizinin başlangıç pozisyonunu bulabiliriz.
Excel VBA LBOUND Fonksiyonunun Sözdizimi
Aşağıda VBA LBOUND fonksiyonunun sözdizimi yer almaktadır.
LBound( Array Name, [Dimension])
- Dizi Adı: Burada, en düşük dizini, yani dizinin en düşük konumunu bulmak istediğimiz dizi adını sağlamalıyız.
- [Boyut]: Bu isteğe bağlı bir argümandır. Burada, dizinin boyutunu belirlemek için tamsayı değerini kullanabiliriz. Bu argümanı atlarsak, varsayılan değer bir olacaktır.
BA LBOUND Fonksiyonu Nasıl Kullanılır?
VBA LBOUND işlevini kullanmanın adım adım yaklaşımını gösterelim. Aşağıdaki adımları izleyin.
Adım 1: Makroya isim vererek alt prosedürü başlatın.

Adım 2: String VBA veri türünde bir değişken tanımlayın .

Adım 3: LBOUND fonksiyonunu kullanmak için, tanımlı değişkeni bir dizi değişkeni yapmalıyız. Bu nedenle, parantez içindeki değişken adından sonra tanımlı değişkene bir boyut atayın.

Adım 4: Şimdi, dizi değişkeninin en düşük konumunu bulmak için LBOUND işlevini kullanabiliriz. VBA LBOUND işlevi bir çıktı döndürür; dolayısıyla, VBA LBOUND işlevinin dönüş değerini değişkene atamak için başka bir değişken tanımlayın.

Adım 5: VBA LBOUND fonksiyonunu Integer olarak tanımlanan ikinci değişkene atayın.

Adım 6: VBA LBOUND fonksiyonunun içine dizi değişken adını, yani “MyVariable”ı geçirin.

Not : Tanımlanan dizi bir boyutlu olduğundan LBOUND boyut argümanını yok sayın. Bu nedenle, varsayılan olarak boyut argümanı girişi olarak bir alır.
Adım 7: Son olarak, LBOUND çıkış değeri değişkeninin değerini bir mesaj kutusunda gösterelim.

Referans olması açısından kodun tamamı aşağıda verilmiştir.
Sub VBA_LBOUND()
Dim MyVariable(1 ila 6) As String
Dim Lbound_Value As Integer
Lbound_Value = LBound(myVariable)
MsgBox Lbound_Value
End Sub
Bu kodu çalıştırdığınızda aşağıdaki sonucu elde edeceksiniz.

VBA LBOUND fonksiyonunun sonucu 1'dir çünkü dizi değişkeni en düşük aralık olan 1 ile başlar. Şimdi, dizi boyutunu "1 ila 6"dan "3 ila 6"ya değiştirelim.
Sub VBA_LBOUND()
Dim MyVariable(3 ila 6) Dize Olarak
Dim Lbound_Value Tamsayı Olarak
Lbound_Value = LBound(Değişkenim)
MsgBox Lbound_Value
End Sub
Bu kodu çalıştırdığınızda şunu elde edersiniz:

Şimdi, en düşük aralık 3'tür. Bu nedenle, VBA LBOUND fonksiyonu dizinin başlangıç aralığını 3 olarak aldı.
VBA LBOUND Fonksiyonunun Örnekleri
Örnek 1 – Dizinin En Düşük Konumunu Bulun
Bir dizi değişkeni bildirdiğimizde, genellikle ona bir boyut atarız. Bu örnekte, dizi değişkeninin başlangıç konumunu bulalım.
Örneğin aşağıdaki koda bakın.

VBA'da bildirilen bir dizi değişkeninin tipik boyutu bu nedenle "1 ila 8"dir. Ancak dizinin boyutu farklıdır.
Sub VBA_LBOUND_EX1()
Dim MyVariable(8) As String
Dim Lbound_Value As Integer
Lbound_Value = LBound(MyVariable)
MsgBox Lbound_Value
End Sub
Dizi değişkeninin başlangıç konumunu bulmak için VBA LBOUND fonksiyonunu kullanalım.

Şimdi kodu çalıştırın. Dizi değişkeninin aşağıdaki başlangıç pozisyonunu göreceksiniz.
Sonuç olarak 0 elde ettik. Bunun sebebi dizi değişkenini tanımlarken başlangıç pozisyonunu girmemiş olmamız, bunun yerine sadece boyutun son boyutunu yani 8'i belirtmiş olmamızdır.
Dizinin sadece son boyutunu belirttiğimizde, dizinin başlangıç noktası 1 değil 0 olacak ve dizinin toplam boyutu gerçek boyut + 1, yani 8 + 1 = 9 olacaktır. Dolayısıyla dizinin en düşük sınırı 0 olacaktır.
Örnek 2 – VBA LBOUND 2D Dizisi
Çok boyutlu dizilerle çalışmak ileri düzey bir tekniktir; dolayısıyla bir dizinin alt sınırını bulmak da VBA LBOUND fonksiyonunda farklılık göstermektedir.
Öncelikle çok boyutlu bir dizinin nasıl tanımlanacağına bakalım. Örneğin, Excel'deki aşağıdaki verilere bakın.

Dokuz satırımız ve iki sütunumuz var (başlıklar hariç). Veriler 1'den fazla sütuna yayıldığı için çok boyutlu bir dizi kullanıyoruz. Diziyi tanımlayın ve çok boyutlu olarak atayın.

Şimdi, ilk boyutun en düşük sınırını bulmak için VBA LBOUND fonksiyonunu kullanalım.
Sub VBA_LBOUND_EX2()
'Bir dizi değişkeni tanımlayın ve atayın
Dim MyData (2 ila 10, 1 ila 10) As String
Dim Lbound_Range As Integer
'Birinci boyut VBA LBOUND aralığına bakmak için boyut argümanını 1 olarak kullandık.
Lbound_Range = LBound(Mydata, 1)
MsgBox Lbound_Range
End Sub
Görüldüğü gibi, VBA LBOUND fonksiyonu içinde, dizinin yalnızca bir boyutuna bakmak için boyut argümanını 1 olarak kullandık. Bu kodu çalıştıralım.

Dizi değişkeni MyData'nın iki boyutu vardır, yani 2 ila 10 ve 1 ila 10.
LBOUND fonksiyonu ile tek bir boyuta baktığımız için en düşük sınır değeri 2'dir. Dolayısıyla LBOUND fonksiyonu da aynı değeri döndürmüştür.
Koddaki boyut argümanını birden ikiye değiştirelim.
Sub VBA_LBOUND_EX2()
'Bir dizi değişkeni tanımlayın ve atayın
Dim MyData (2 ila 10, 1 ila 10) As String
Dim Lbound_Range As String
'İlk boyut VBA LBOUND aralığına bakmak için boyut argümanını 2 olarak kullandık
Lbound_Range = LBound(Mydata, 2)
MsgBox Lbound_Range
End Sub
Kodu çalıştırın ve ne olacağını görün.

İkinci boyutta dizinin en düşük sınırı 1'dir; dolayısıyla VBA LBOUND fonksiyonu da aynı değeri döndürmüştür.
Örnek 3 – VBA LBOUND ve VBA UBOUND Bir Döngüde Birlikte
VBA'da bir dizi fonksiyonunun gücünden en iyi şekilde, onu döngü içindeki diğer fonksiyonlarla birlikte kullandığımızda faydalanabiliriz. İki dizi fonksiyonu olan VBA LBOUND ve VBA UBOUND'u daha detaylı inceleyelim .
Beş tam sayı arasında döngü yapmamız gerektiğini varsayalım, aşağıdaki gibi 5 dizi boyutunda bir değişken tanımlamalıyız .

Döngüyü başlatmak için başka bir değişken tanımlayın.

Daha sonra döngüyü başlatın.

Döngü için sabit kodlanmış başlangıç ve bitiş sınırlarını verdik, yani 1 ila 5, bu da dizi değişkeni boyutuna eşittir. Ancak, bir dizinin boyutunu artırır veya azaltırsak, FOR NEXT döngüsünün başlangıcını ve sonunu da manuel olarak değiştirmemiz gerekir.
Dolayısıyla, sabit kodlanmış sayılar vermek yerine, bir dizinin en düşük ve en yüksek sınırını belirlemek için VBA LBOUND UBOUND fonksiyonlarını kullanabiliriz.

Şimdi, döngünün içinde, kodu gereksinimlerimize göre yazabiliriz. Referansınız için tam kod aşağıdadır.
Sub VBA_LBOUND_EX3()
'5 boyutunda bir dizi değişkeni tanımlayın
'Bu değerler arasında döngü yapmamız gerektiğinden tam sayı veri türünü atayın
Dim MyInteger(1 ila 5) As Integer
'Döngüyü başlatmak için bir değişken tanımlayın
Dim k As Long
'Döngüyü başlat
'Döngünün başlangıcını ve sonunu belirlemek için VBA LBOUND UBOUND işlevlerini kullanın
For k = LBound(MyInteger) To UBound(MyInteger)
MsgBox k
Next k
End Sub
Bu kod artık 1'den 5'e kadar olan tam sayı değerlerini ayrı ayrı bir mesaj kutusunda birbiri ardına gösterecektir.
Dikkat Edilmesi Gereken Önemli Noktalar
- Dizi uzunluğu statik olduğunda, yani tam boyutu (1 ila 10) sağlamazsak, dizi her zaman 1'den değil 0'dan başlar.
- VBA LBOUND fonksiyonunun boyut argümanı için varsayılan değer 1'dir. Eğer diğer boyutlara gitmek istiyorsak 2, 3 veya 4 gibi boyut numaralarını özel olarak belirtmemiz gerekir.
- Dizi boyutlandırılmamışsa veya boşsa, varsayılan değer 0 olacaktır.
- VBA LBOUND fonksiyonu string değerleriyle çalışmaz ve varsayılan değer 1 olur.
Evet, VBA LBOUND diziler için 0'dan farklı bir değer döndürebilir. Örneğin, aşağıdaki diziye bakın.
Dim MyArray (2 ila 10) as String Bu durumda,
VBA LBOUND 0 yerine 2 döndürür çünkü dizinin boyutu 0'dan değil 2'den başlar.
Başlatılmamış dizi ile VBA LBOUND'u kullanırsak başlangıç pozisyonu olarak 0 alırız.