EXCEL VBA'DA LEN FONKSİYONU

 


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.

VBA Len Giriş - Kod

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

VBA Len Giriş - Çıktı

ÖNEMLİ NOKTALAR

  1. 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.
  2. 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.
  3. 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.

VBA Len - Örnek 1 - Adım 1

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.

VBA Len - Örnek 1 - Adım 2.jpg

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

VBA Len - Örnek 1 - Adım 3.jpg

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.

VBA Len - Örnek 1 - Adım 4.jpg

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.

VBA Len - Örnek 1 - Adım 5.jpg

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.

VBA Len - Örnek 1 - Adım 6.jpg

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.

VBA Len - Örnek 1 - Adım 7.jpg

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.

VBA Len - Örnek 1 - Adım 8.jpg

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.

VBA Len - Örnek 1 - Adım 9.jpg
VBA Len - Örnek 1 - Adım 9 - mesaj kutusu

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.

Örnek 1 - Adım 10.jpg

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.

VBA Len - Örnek 1 - Adım 11 - box.jpg
VBA Len - Örnek 1 - Adım 11 - Çıktı

İş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.

VBA Len - Örnek 2 - Adım 1.jpg

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.

VBA Len - Örnek 2 - Adım 2.jpg

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

VBA Len - Örnek 2 - Adım 3.jpg

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.

VBA Len - Örnek 2 - Adım 4.jpg

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.

VBA Len - Örnek 2 - Adım 5.jpg

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 .

VBA Len - Örnek 2 - Adım 6.jpg

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.

VBA Len - Örnek 2 - Adım 7.jpg

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.

VBA Len - Örnek 2 - Adım 8.jpg

İş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.

VBA len - Trim - Örnek 1 - Adım 1.jpg

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.

VBA len - Trim - Örnek 1 - Adım 2.jpg

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.

VBA len - Trim - Örnek 1 - Adım 3.jpg
VBA len - Trim - Örnek 1 - Adım 3 - String.jpg

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.

VBA len - Trim - Örnek 1 - Adım 5.jpg

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.

VBA len - Trim - Örnek 1 - Adım 6.jpg

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

VBA len - Trim - Örnek 1 - Adım 7.jpg

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.

Örnek 2 - Adım 1.jpg

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.

Örnek 2 - Adım 2.jpg

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.

Örnek 2 - Adım 3.jpg

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.

Örnek 2 - Adım 4.jpg

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

Örnek 2 - Adım 5.jpg

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.

Örnek 2 - Adım 6.jpg

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.

Örnek 2 - Adım 7.jpg

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 .

Örnek 2 - Adım 9.jpg

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.

Örnek 2 - Adım 10.jpg

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.

Örnek 2 - Adım 11.jpg

İş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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Yorum Gönder

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