VBA LEN işlevi, belirtilen bir dizenin uzunluğunu veya verilen bir metin veya dize değişkenindeki karakter sayısını döndüren yerleşik bir dize işlevidir. Genellikle, girdi uzunluklarını doğrulama, belirli uzunluk gereksinimleri olan dizeleri işleme veya daha büyük bir dizedeki konumlarına göre alt dizeleri çıkarma gibi çeşitli programlama görevleri için önemli olabilen bir dizenin boyutunu belirlemek için kullanılır.
Bir örneğe bakalım. Bu örnekte, kod VBA Len fonksiyonunu kullanarak “Hello, World!” dizesinin uzunluğunu hesaplar. Uzunluk 13'tür (karakter sayısı) ve length değişkeninde saklanır.

Kod daha sonra şu mesaj kutusunu görüntüler: "Dize uzunluğu: 13."

- VBA LEN işlevi, boşluklar dahil olmak üzere giriş dizesindeki her karakteri sayar. Genellikle, dizede bulunan karakterlerin sayısını (boşluklar ve özel karakterler dahil) içeren bir dizenin uzunluğunu bulmak için kullanılır.
- Sayımdan baştaki ve sondaki boşlukları hariç tutmak istiyorsanız, bunları kaldırmak için Trim veya WorksheetFunction.Trim işlevini kullanmayı düşünebilirsiniz.
- VBA LEN fonksiyonu yalnızca dizelerle sınırlı değildir; dizinin VBA Len'ini bir dize olarak ele alarak bir dizideki eleman sayısını bulmak için de kullanılabilir. Ancak çok boyutlu diziler için istenilen sonucu vermeyebilir.
VBA LEN Sözdizimi
VBA LEN fonksiyonunun sözdizimi basittir.
Len(string)
string: Uzunluğunu bulmak istediğiniz giriş dizesi veya metin ifadesi.
Örnekler
LEN fonksiyonunun nasıl uygulanacağına dair bazı örneklere bakalım.
Örnek 1: Temel Kullanım
Adım 1: Excel çalışma kitabınızı açın ve “Alt + F11” tuşlarına basarak VBA düzenleyicisine erişin.

Adım 2: VBE’de menü çubuğunda “Ekle”ye tıklayın ve “Modül”ü seçin. Bu, projeye yeni bir modül ekleyecektir.

Adım 3: Yeni modülde “ValidateInput” adında bir alt rutin oluşturun.

Adım 4: Bu adımda userInput ve userInputLength'i bildiriyoruz, burada userInput, String veri türünde VBA Len'dir ve userInputLength, Integer veri türündedir. Bu değişkenler sırasıyla kullanıcının girdisini ve girdi dizesinin uzunluğunu depolamak için kullanılacaktır.

Adım 5: InputBox fonksiyonunu kullanarak bir giriş kutusu penceresi oluşturuyoruz. Giriş kutusu “Adınızı girin:” mesajını gösterecek ve kullanıcının adını girmesini bekleyecek. Kullanıcının girişi userInput değişkeninde saklanacak.

Adım 6: Kullanıcının girdisinin If ifadesi ve LEN işlevi kullanılarak boş olup olmadığını kontrol edin. userInput dizesinin uzunluğu 0'dan büyükse (yani boş değilse), kod bir sonraki adımlara geçer. Aksi takdirde, Else bloğuna atlar.

Adım 7: Kullanıcının girdisi boş değilse kod, Len fonksiyonunu kullanarak girdi dizesinin uzunluğunu hesaplar ve bunu userInputLength değişkenine atar.

Adım 8: Şimdi, MsgBox işlevini kullanarak kullanıcının girdi dizesinin uzunluğunu bir mesaj kutusunda görüntülüyoruz. Kutu, "Merhaba, [kullanıcının girdisi]! Adınız [girişin uzunluğu] karakter içeriyor." mesajını gösterir. [Kullanıcının girdisi] ve [girişin uzunluğu] sırasıyla gerçek kullanıcının girdisi ve uzunluğuyla değiştirilir.

Adım 9: Kullanıcının girişi boşsa (yani, If ifadesinin Else kısmı tetiklenirse), kod "Lütfen adınızı girin." mesajını içeren farklı bir mesaj kutusu görüntüler.


Adım 10: Şimdi modülü kaydedin ve VBE'den çıkın. Şimdi, VBA Makro menüsünü açmak için Alt + F8 tuşlarına basın, “ValidateInput”u seçin ve Çalıştır'a tıklayın.

Adım 11: Kullanıcıdan VBA'da bir giriş kutusu kullanarak adını girmesi istenecek , giriş dizesinin uzunluğu hesaplanacak ve kullanıcının adını ve adındaki karakter sayısını gösteren bir ileti kutusu görüntülenecektir.


İşte kodun tamamı:
Sub ValidateInput()
Dim userInput As String
Dim userInputLength As Integer
' Kullanıcıdan girdi iste
userInput = InputBox(“Adınızı girin:”)
' Girdinin boş olmadığını kontrol et
If Len(userInput) > 0 Then
' Girdi dizesinin uzunluğunu hesapla
userInputLength = Len(userInput)
' Uzunluğu bir mesaj kutusunda görüntüle
MsgBox “Merhaba, ” & userInput & “! Adınız ” & userInputLength & ” karakterlerini içeriyor.”
Else
' Girdi boşsa bir mesaj görüntüle
MsgBox “Lütfen adınızı girin.”
End If
End Sub
Örnek 2: Boş Dizelerin İşlenmesi
Adım 1: Yeni modülde “Example_Len_EmptyString” adlı bir alt rutin oluşturun.

Adım 2: Bu adımda, Dim ifadesini kullanarak “emptyString” adlı bir değişken bildiriyoruz ve bunun String veri türünde olacağını belirtiyoruz. Bu değişken boş dizeyi depolayacaktır.

Adım 3: Burada, “emptyString” değişkeninin değerini atama operatörü “=.” kullanarak boş bir dizeye ayarlıyoruz.

Adım 4: Bu adımda, Dim ifadesini kullanarak “length” adlı başka bir değişken bildiriyoruz ve bunun Integer veri türünde olacağını belirtiyoruz. Bu değişken, dizenin uzunluğunu depolayacaktır.

Adım 5: Burada, Len fonksiyonunu kullanarak “emptyString” değişkeninin (hiçbir karakteri olmayan) uzunluğunu hesaplıyoruz ve sonucu “length” değişkenine atıyoruz.

Adım 6: Son olarak, “Boş dizenin uzunluğu: ” metnini “length” değişkeninde depolanan değerle birleştiren bir mesaj kutusu görüntülemek için MsgBox işlevini kullanırız. & sembolü VBA'da birleştirme için kullanılır .

Adım 7: Şimdi modülü kaydedin ve VBE'den çıkın. Şimdi Makro menüsünü açmak için Alt + F8 tuşlarına basın, “Example_Len_EmptyString”i seçin ve Çalıştır'a tıklayın.

Adım 8: Makroyu çalıştırdığınızda, boş bir dizede karakter bulunmadığından mesaj kutusu “Boş dizenin uzunluğu: 0” mesajını görüntüler.

İşte kodun tamamı:
Sub Example_Len_EmptyString()
Dim emptyString As String
emptyString = “”
Dim length As Integer
length = Len(emptyString)
MsgBox “Boş dizenin uzunluğu: ” & length
End Sub
VBA LEN Destek Fonksiyonu Olarak
Örnek 1: Öndeki ve Arkadaki Boşlukları Kırpma
Adım 1: Yeni modülde, bir girdi dizesi olan “inputString”i argüman olarak alan ve sonuç olarak bir dize döndüren “TrimSpaces” adlı özel bir fonksiyon tanımlayın.
Bu adımda, Function anahtar sözcüğünü kullanarak “TrimSpaces” adlı bir VBA işlevi tanımlıyoruz . İşlev, String veri türünden tek bir giriş parametresi olan “inputString”i alır ve sonuç olarak bir dize döndürür.

Adım 2: Burada, "inputString"den öndeki ve arkadaki boşlukları kaldırmak için WorksheetFunction.Trim fonksiyonunu kullanıyoruz. Trim fonksiyonu yalnızca öndeki ve arkadaki boşlukları kaldırır, kelimeler arasındaki boşlukları kaldırmaz.

Adım 3: Burada, WorksheetFunction.Trim(inputString)'den elde edilen kırpılmış dizenin uzunluğunu hesaplamak için Len fonksiyonunu kullanırız. Daha sonra, kırpılmış parçadan sonraki konumdan başlayarak ve orijinal dizenin sonuna kadar uzanan "inputString"den bir alt dize çıkarmak için VBA'daki Mid fonksiyonunu kullanırız.


Adım 4: VBA düzenleyicisini kaydedip kapatın.
Adım 5: Excel çalışma kitabınıza geri dönün ve artık TrimSpaces işlevini çalışma sayfanızda veya diğer VBA kodlarınızda kullanabilirsiniz.

Adım 6: Çalışma sayfanızda işlevi kullanmak için, bir hücreye =TrimSpaces(inputString) formülünü girin, burada inputString öndeki ve arkadaki boşlukları kırpmak istediğiniz dizedir. Örneğin, A1 hücresindeki boşlukları kırpmak istiyorsanız, =TrimSpaces(A1) girersiniz.

Adım 7: Enter'a basın, fonksiyon başında ve sonunda boşluklar kaldırılmış değiştirilmiş dizgeyi döndürecektir.

Not: TrimSpaces fonksiyonu, giriş dizesindeki öndeki ve arkadaki boşlukların, kelimedeki harf sayısına eşit olmasını gerektirir.
Örneğin, kelime dört harfli "King" ise, fonksiyon doğru çalışması için hem öndeki hem de arkadaki boşlukların dört boşluğa sahip olmasını bekler. Bu koşul, fonksiyonun amaçlanan boşlukları doğru bir şekilde kırpmasını ve doğru değiştirilmiş dizgeyi sağlamasını garanti eder.
İşte kodun tamamı:
Function TrimSpaces(inputString As String) As String
' Giriş dizesindeki öndeki ve arkadaki boşlukları keser
TrimSpaces = Mid(inputString, Len(WorksheetFunction.Trim(inputString)) + 1, Len(inputString) – 2 * Len(WorksheetFunction.Trim(inputString)))
End Function
Örnek 2: Bir Sütundaki Boş Olmayan Hücreleri Sayma
Adım 1: Bir argüman olarak “rng” aralığını alan ve Long veri türünü döndüren “CountNonEmptyCells” adlı özel bir fonksiyon bildirin.

Adım 2: Burada, “hücre” ve “sayı” adlı iki değişken bildiriyoruz. “hücre”, VBA Aralık veri türündedir ve “rng” giriş aralığındaki her bir hücrede yineleme yapmak için kullanılacaktır. “sayı”, Uzun veri türündedir ve boş olmayan hücrelerin sayısını depolayacaktır.

Adım 3: “rng” aralığındaki her hücrede döngü oluşturmak için For Each döngüsünü kullanırız. Döngü belirtilen aralıktaki tüm hücrelerde yineleme yapar.

Adım 4: Burada, geçerli hücrenin değerinin boş olmadığını kontrol etmek için VBA'da Len işlevini ve Trim işlevini kullanırız . Len işlevi hücre değerinin uzunluğunu hesaplarken, Trim işlevi öndeki ve arkadaki boşlukları kaldırır.

Adım 5: (yani boş olmayan hücre değeri) “count” değişkeni 1 artırılır.

Adım 6: Sonraki hücre ifadesi döngünün sonunu belirtir ve döngü “rng” aralığındaki bir sonraki hücre için devam eder.

Adım 7: Son olarak, aralıktaki boş olmayan hücre sayısını temsil eden “count” değişkeninin değerini “CountNonEmptyCells” fonksiyonuna atarız. Fonksiyondan çıkılır ve sonuç döndürülür.

Adım 8: VBA düzenleyicisini kaydedip kapatın.
Adım 9: Excel çalışma kitabınıza geri dönün ve artık çalışma sayfanızda veya diğer VBA kodunda CountNonEmptyCells işlevini kullanabilirsiniz .

Adım 10: Çalışma sayfanızda işlevi kullanmak için, hücreye =CountNonEmptyCells(range) formülünü girin; burada aralık, boş olmayan hücreleri saymak istediğiniz hücre aralığıdır. Örneğin, A sütunundaki boş olmayan hücreleri saymak istiyorsanız, =CountNonEmptyCells(A:A) girersiniz.

Adım 11: Enter'a basın, fonksiyon belirtilen aralıktaki boş olmayan hücre sayısını hesaplayacaktır. "CountNonEmptyCells" fonksiyonu, belirli bir sütundaki boş olmayan hücre sayısını saymanız gerektiğinde değerlidir.

İşte kodun tamamı:
Function CountNonEmptyCells(rng As Range) As Long
' Verilen bir sütundaki boş olmayan hücrelerin sayısını döndürür
Dim cell As Range
Dim count As Long
For Each cell In rng
If Len(Trim(cell.Value)) > 0 Then
count = count + 1
End If
Next cell
CountNonEmptyCells = count
End Function
Dikkat Edilmesi Gereken Önemli Noktalar
- VBA Len işlevi dizilere doğrudan uygulanabilir değildir. Bir dizideki eleman sayısını belirlemek için LBound ve UBound işlevlerini ve uygun dizi boyutunu kullanın.
- VBA LEN işlevi bir Variant veri türüne uygulandığında, altta yatan veri türünü dikkate alır. Örneğin, Variant'ın VBA LEN'i sayısal bir değer içeriyorsa, dize gösteriminin uzunluğunu hesaplar.
- VBA LEN, bir sütundaki hücre değerlerinin uzunluğunu kontrol etmek için kullanılabilir. Genellikle hücre içeriklerinin uzunluğuna göre belirli eylemleri gerçekleştirmek için döngüler veya koşullarla birleştirilir.
- VBA Len ve LenB fonksiyonları arasında bir fark vardır. VBA Len fonksiyonu, her karakteri temsil etmek için kullanılan bayt sayısına göre karakter sayısını döndürürken, LenB dizedeki bayt sayısını döndürür.
- VBA LEN of column fonksiyonu, bir sütundaki hücre değerlerinin uzunluğunu kontrol etmek için kullanılabilir. Genellikle hücre içeriklerinin uzunluğuna göre belirli eylemleri gerçekleştirmek için döngüler veya koşullarla birleştirilir.
