EXCEL VBA'DA ISNULL FONKSİYONU

 


VBA IsNull işlevi, bir ifadenin geçerli veri (Null) içerip içermediğini belirten bir Boolean değeri döndüren yerleşik bir işlevdir. Genellikle, belirli bir değişkenin veya hücrenin boş olup olmadığını kontrol eden VBA IsNull Empty işleviyle karıştırılır.


Aşağıdaki örneği ele alalım:

VBA ISNULL Fonksiyonu Örneği 1

Bir değişken ilk olarak başlatılır. Daha sonra, null bir değer olup olmadığı kontrol edilir. Burada, null bir değer bildirmek için VBA Null işlevini kullanırız. Bu nedenle, VBA IsNull işlevi true döndürür.

VBA ISNULL İşlevi Örneği 1-1

VBA Kod Düzenleyicisi'ndeki Hemen sekmesinden görüntülenebilir.


ÖNEMLİ NOKTALAR

  • IsNull fonksiyonu, bir ifadenin geçerli veri içerip içermediğini (Null) gösteren bir Boole değeri döndüren VBA'da yerleşik bir fonksiyondur.
  • Bir isNull fonksiyonu herhangi bir alt prosedür veya fonksiyon prosedürüyle kullanılabilir. Sadece VBA'da mevcuttur ve Excel çalışma sayfası fonksiyonlarıyla kullanılamaz.
  • Bu fonksiyon, bir veri tablosundaki bir alanın Null değeri içerip içermediğini kontrol etmek için kullanılabilir.
  • IsNull fonksiyonu, IIf fonksiyonunu kullanarak Null değerleri varsayılan bir değerle değiştirebilir.
  • Fonksiyon, Not, And ve Or gibi diğer mantıksal operatörlerle birleştirilerek daha karmaşık mantıksal ifadeler oluşturulabilir.

Sözdizimi

VBA IsNull için sözdizimi aşağıda gösterilmiştir

var = IsNull(değişken)

Nerede,

  • Değişken geçerli bir veri değeri için kontrol edilir. Değilse True döndürür.

VBA ISNULL Fonksiyonu Nasıl Kullanılır?

VBA IsNull fonksiyonunu VBA kodunuzda uygulamak için aşağıdaki adımları izleyerek nasıl yapacağınızı öğrenebilirsiniz.

Adım 1: Excel Çalışma Kitabını açın. Başlık çubuğunda, Çalışma Kitabının araç çubuğundaki “ Geliştirici ” sekmesine gidin.

VBA ISNULL Örneği Nasıl Kullanılır 1

“ Geliştirici ” simgesine tıkladıktan sonra araçların en soluna gidin ve “ Visual Basic ” seçeneğini seçin.

VBA ISNULL Örneği Nasıl Kullanılır 1-1

Excel VBA (Visual Basic for Applications) düzenleyicisini açar. Bunun için yeni bir modül eklememiz gerekir. Bu, VBA araç çubuğundaki “ Ekle ” düğmesine tıklanarak ve açılır bölümde “ Modül ” seçilerek yapılabilir.

VBA ISNULL Örneği Nasıl Kullanılır 1-2

Artık VBA projeniz için kendi alt programlarınızı oluşturabilirsiniz.

Adım 2: Verilen bir değişkenin “ NULL ” değerine sahip olup olmadığını kontrol eden bir alt prosedür oluşturun .

VBA ISNULL Örneği Nasıl Kullanılır 1-3

Adım 3: Bir değişkeni başlatın ve ona bir değer atayın. Burada değer 0 olarak atanır.

VBA ISNULL Örneği Nasıl Kullanılır 1-4

Adım 4: VBA IsNull  fonksiyonunun değişkenin null olup olmadığını kontrol ettiği bir If-Else ifadesi bloğu oluşturun  .

VBA ISNULL Örneği Nasıl Kullanılır 1-5

Adım 5: If-Else ifadesi bloğunun Else kısmını bildirin   . “Debug.Print” fonksiyonunu kullanır. 

VBA ISNULL Örneği Nasıl Kullanılır 1-6

Kod:

Sub CheckIfValueIsNull()

    Dim myCell As Integer

    myCell = 0

    If IsNull(myCell) Then

        Debug.Print “Bu bir Null değeridir”

    Else

        Debug.Print “Bu bir Null değeri değildir”

    End If

End Sub

Adım 6: Alt yordamı çalıştırmak için, çalıştırmak istediğiniz alt yordamın üzerine gelin ve programı çalıştırmak için “F5” tuşuna veya VBA araç çubuğundaki yeşil ok düğmesine basın.

VBA ISNULL Örneği Nasıl Kullanılır 1-7

“Debug.Print” fonksiyonunun kullanılması nedeniyle çıktı anında sekmede yazdırılır. VBA IsNull false döndürür.

Değişkene 0 değerini vermiş olsak da, 0 geçerli bir tam sayı olduğundan bu bir boş değer değildir.

Artık VBA IsNull fonksiyonunun nasıl düzgün bir şekilde kullanılacağını öğrendiğimize göre, fonksiyonun nasıl kullanılacağına dair ufkumuzu genişletmek için bazı örneklere bakalım.


Örnekler

VBA IsNull'un nasıl çalıştığını daha iyi anlamak için aşağıdaki örnekleri inceleyebilirsiniz.

Örnek 1

Boş bir dize verildiğinde, değerin Null olup olmadığını kontrol etmeli ve buna göre yazdırmalısınız.

Adım 1: Boş dizeyi kontrol edeceğiniz alt rutini tanımlayın.

VBA IsNull Örneği1 - Adım 1

Adım 2: Bir VBA Dize değişkeni tanımlayın ve bunu ” “ ile boş bir dize olarak bildirin.

VBA IsNull Örneği1 - Adım 2

Not: Bu yalnızca String ve Variant veri türleri için geçerlidir. Boş bir dizeyle tanımlanan diğer herhangi bir veri türü VBA Type Mismatch hatasıyla sonuçlanacaktır .

Adım 3: Verilen dizenin boş olup olmadığını kontrol etmek için bir If-Else ifadesi başlatın.

VBA IsNull Örneği1 - Adım 3

Eğer Null değer ise, hemen altındaki sekmede “NULL” yazdırır.

Adım 4: If-Else ifadesinin “Else” kısmını tanımlayın ve sonucu yazdırın.

VBA IsNull Örnek1 - Adım 4

Kod:

Sub CheckIfStringIsNull()

    Dim a As String

    a = “”

    If IsNull(a) Then

        Debug.Print “NULL”

    Else

        Debug.Print “NOT NULL”

    End If

End Sub

Adım 5: Yukarıdaki alt rutini belirtin ve kodu VBA Editöründe çalıştırın. Çıktı aşağıda gösterilmiştir:

VBA IsNull Örnek1 - Adım 5

Boş bir dize bildirilmiş olsa bile, Excel VBA Dize değişkenini tanımsız veya bildirilmemiş olarak kabul ettiğinden bu bir Null Değeri değildir, ancak veriler hala geçerlidir.


Örnek 2

Kullanıcıdan gelen bir girdinin Null olup olmadığını kontrol ettiğimiz bir örnek üzerinden gidelim.

Adım 1: InputBox()'tan gelen giriş değerinin Null olup olmadığını kontrol eden bir alt rutin tanımlayın.

VBA IsNull Örneği2 - Adım 1

Adım 2: Değişkeni Variant veri türü olarak başlatın ve bunu kullanıcı tarafından girilen giriş değerine atayın.

VBA IsNull Örneği2 - Adım 2

Adım 3: VBA IsNull fonksiyonu tarafından döndürülen sonucu depolamak için bir Boole değişkeni başlatın.

VBA IsNull Örneği2 - Adım 3

Adım 4: Bir If-Else ifadesiyle VBA IsNull sonucunun false mu, yoksa true mu döndürdüğünü kontrol edin.

VBA IsNull Örneği2 - Adım 4

Adım 5: 'If' ifadesi yanlışsa Else bloğuyla başa çıkmak için başka bir yazdırma fonksiyonu başlatın.

VBA IsNull Örneği2 - Adım 5

Kod:

Sub CheckIfInputIsNull()

    Dim ip As Variant

    ip = InputBox(“Enter value”)

    Dim res As Boolean

    res = IsNull(ip)

    If result = True Then

        Debug.Print “Null? Yes.”

    Else

        Debug.Print “Null? No.”

    End If

End Sub

Adım 6: Yukarıdaki alt programı çalıştırın ve çıktıyı görüntüleyin.

VBA IsNull Örneği2 - Adım 6
VBA IsNull Örneği2 - Adım 7

Not null olarak döner. ' Even' girdiğimiz için boş kutucuk bırakırsak aynı sonucu verecektir.


Örnek 3

Null değerleri olan bir VBA Dizisi düşünün . Dizinizde yalnızca tamsayı değerlerine ihtiyacınız var. Bu nedenle, Null değerlerini doğru bir şekilde tanımlamalı ve silmelisiniz. Bu işlem, Excel'de null değerleri olan veri kümelerini temizlemek için kullanılır.

Adım 1: Null değerleri silmek için bir alt rutin tanımlayın.

VBA IsNull Örneği3 - Adım 1

Adım 2: Bir VBA Integer dizisi bildirin ve değerlerinizi başlatın.

VBA IsNull Örneği3 - Adım 2

Adım 3: VBA'da şu anda boş olan başka bir dizi tanımlayın.

VBA IsNull Örneği3 - Adım 3

Adım 4: İki yinelemeli değişken tanımlayın ve birini dizinin LBound değeri olarak atayın. Bu, dizide bulunan sütun sayısını yinelediği anlamına gelir.

VBA IsNull Örneği3 - Adım 4

Adım 5: Tüm dizi boyunca çalışan bir FOR döngüsü bildirin. Bu, VBA IsNull not fonksiyonuyla her değişkenin Null olup olmadığını kontrol eder.

VBA IsNull Örneği3 - Adım 5

Daha sonra boş olmayan değerler yeni diziye eklenir ve yineleme devam eder.

Adım 6: ReDim Preserve fonksiyonunu kullanarak tüm boş değişkenleri kaldırıyoruz ve değişkenden VBA dizisinin boyutunu ayarlıyoruz.

VBA IsNull Örneği3 - Adım 6

Adım 7: FOR döngüsünü kullanarak dizinin değerlerini anlık pencereye yazdırın.

VBA IsNull Örneği3 - Adım 7

Kod:

Sub DeleteNullElements()

    Dim myArray As Variant

    myArray = Array(1, 2, Null, 4, Null, 6, 7, Null, 9)

    Dim newArray() As Variant

    ReDim newArray(LBound(myArray) To UBound(myArray))

    Dim i As Integer

    Dim j As Integer

    j = LBound(newArray)

    For i = LBound(myArray) To UBound(myArray)

        If Not IsNull(myArray(i)) Then

            newArray(j) = myArray(i)

            j = j + 1

        End If

    Next i

    ReDim Preserve newArray(LBound(newArray) To j – 1)

    For i = LBound(newArray) To UBound(newArray)

        Debug.Print newArray(i)

    Next i

End Sub

Adım 8: Yukarıdaki alt programı çalıştırın, ardından anlık pencereyi kontrol edin.

VBA IsNull Örneği3 - Adım 8

Bu örnekte Null değer içeren öğelerin nasıl silineceğini öğrendik.


Örnek 4

Başka bir diziniz olduğunu düşünün, ancak istatistiksel prosedürlerin uygulanması nedeniyle dizideki hiçbir değeri silemezsiniz. Bu nedenle, Null değerleriyle başa çıkmanın bir yolunun onları tüm dizinin Ortalama değeriyle değiştirmek olduğu veri ön işleme kavramını kullanmanız gerekir.

Adım 1: Boş değerleri dizinin ortalama değeriyle değiştirmek için bir alt rutin oluşturun.

VBA IsNull Örneği4- Adım 1

Adım 2: Bir diziyi Variant veri türü olarak tanımlayın ve içindeki değerleri başlatın.

VBA IsNull Örneği4- Adım 2

Adım 3: Dizinin toplamını ve sayısını bulmak için iki tam sayı değişkeni başlatın. Dizinin boyutunu bulmak ve tüm elemanlarını (boş değil) eklemek için kullanılır.

VBA IsNull Örneği4- Adım 3

Adım 4: Dizi boyunca çalışan bir FOR döngüsü tanımlayın ve If-Else ifadesini kullanarak boş olmayan değerleri 'sum' değişkenine ekleyin.

VBA IsNull Örneği4- Adım 4

Adım 5: Dizi elemanlarının ortalama değerini depolayan değişkeni Double değeri olarak tanımlayın.

VBA IsNull Örneği4- Adım 5

Adım 6: Başka bir FOR döngüsü başlatın ve dizideki Boş değerleri kontrol edin, ardından bunları ortalama değerle değiştirin.

VBA IsNull Örneği 4- Adım 6

Adım 7: Dizinin değerlerini Immediate sekmesine yazdırın.

VBA IsNull Örneği4- Adım 7

Kod:

Sub ReplaceNullWithMean()

    Dim myArray As Variant

    myArray = Array(12, 24, Null, 34, Null, 67, 74, Null, 98)

    Dim sum As Double

    Dim count As Integer

    sum = 0

    count = 0

    For i = LBound(myArray) To UBound(myArray)

        If Not IsNull(myArray(i)) Then

            sum = sum + myArray(i)

            count = count + 1

        End If

    Next i

    Dim mean As Double

    mean = sum / count

    For i = LBound(myArray) To UBound(myArray)

        If IsNull(myArray(i)) Then

            myArray(i) = mean

        End If

    Next i

    For i = LBound(myArray) To UBound(myArray)

        Debug.Print myArray(i)

    Next i

End Sub

Adım 8: Yukarıdaki örneği VBA Editöründe çalıştırın. Dizi Immediate sekmesinde yazdırılır.

VBA IsNull Örneği4- Adım 8

Görüldüğü gibi dizideki tüm Null değerler silinmeye gerek kalmadan işlendi.

Yorum Gönder

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