Skip to content

IF KARAR YAPISI İLE ŞARTA GÖRE İŞLEMLER

İÇİNDEKİLER

    Bu yazımızda sizlere; makro tarafında olmazsa olmaz bir karar/koşul yapısından bahsediyor olacağım. Yazının sonunda IF Karar yapısı nedir, ne zaman ve nasıl kullanılırı öğrenmiş olacağız.

     

    IF KARAR YAPISI NEDİR?

    Bu

    koşul yapısı; bütün programlama dillerinde olan, bazı şartların gerçekleşmesi veya gerçekleşmemesi durumunda ayrı-ayrı kod bloklarının çalıştırılmasına imkân veren yapıdır.

    Belirtilen koşuldan geri dönen True/False Boolean değerine göre işlemler yapabilmenizi sağlar.
    Eğer koşulun True Doğru olduğu söylenirse, belirtilen koşul(lar)ın altında bulunan ifadeler uygulanır.
    Koşulun False Yanlış olduğu söylenirse, IF yapısından sonra belirtilen ifadeler uygulanır. İlaveten, duruma göre Else veya ElseIF ifadelerini belirttiysek o satırların da kontrolünü sağlar ve ne zaman sonuç True dönerse orada belirtilen komutlar uygulanır.

     

    NE ZAMAN KULLANILIR? 

    Kod yazarken, Eğer ile başlayan bir düşüncemiz/şartımız varsa ve bir veya birden fazla şarta göre işlemler yaptırmak istiyorsak genellikle bu yapıyı kullanırız. Bu yapıdan başka birkaç Karar/Koşul yapısı daha mevcuttur, bunlar; Select Case, IIF, Choose ve Switch yapılarıdır. Bu yapılara da hâkim olmak kod yazarken sizi rahatlatacaktır.

     

    NASIL KULLANILIR?

    Öncelikle yazım kalıbı veya söz dizimi dediğimiz durumu, yani bu IF yapısını VBA tarafında nasıl yazabiliriz ona bir bakalım.

     

    YAZIM KALIBI

    Yazım kalıbı Syntax aşağıdaki gibidir..
    Mavi renkli kısımlar sabittir.
    Kırmızı renkli kısımlar değişkendir.

    If koşul(lar) Then
    ‘Kodlarınız
    End If

    Mantık olarak kabaca şöyle düşünebilirsiniz; “Eğer bu sayı 10’dan büyükse bunları yap.” gibi..

    Eğer tek bir koşulumuz şartımız varsa, yukarıdaki kalıbı bu şekilde de kullanabilirsiniz.
    If koşul(lar) Then ‘Kodlarınız
    Tek şart varsa, End If ifadesini kaldırıp, koşulu Then ifadesinin yanına yazabilirsiniz.
    If ve Then arasındaki koşulumuz da, duruma göre birden fazla olabilir.
    Yani örneğin; A sütunundaki hücrelerdeki sayılar 10‘dan büyükse ve boş değilse gibi, And, Or, Xor vb. Mantıksal operatörleri de kullanabilirsiniz.

    Şimdi bu kısmı tam olarak anlamanız için ufak bir kod örneği verelim..

    If sayi > 10 And sayi < 20 Then

    Tek bir If .. Then kalıbı arasında mantıksal operatörler kullanarak, koşulumuzu kendi içinde 2-3-4…’e çıkarabilirsiniz. Diyelim ki; A2:A10 hücre aralığında bazı sayılarımız var ve bu sayılardan 10‘dan büyük olanların B sütununa büyük ifadesini yazdıralım.

    Bunun için bize gerekli olan kodlar bu şekildedir;

    Sub IF_Kosul_Yapisi()
        For i = 2 To 10
            If Cells(i, "A") > 10 Then
                Cells(i, "B") = "Büyük"
            End If
        Next i
    End Sub

    Bu kodların nasıl çalıştığını gif resimde görerek daha iyi anlayabilirsiniz.

    IF yapısı

     

    BİRDEN FAZLA KOŞUL VE ELSE

    Eğer birden fazla koşulumuz var ise ve mantık olarak, Eğer böyleyse bunu yap, değilse şunu yap gibi, iki farklı duruma göre işlem yapmak istiyorsanız, bunu da yine tek bir satırda bu şekilde yazabileceğiniz gibi;

    If Cells(i, "A") > 10 Then Cells(i, "B") = "Büyük" Else Cells(i, "B") = "Küçük"

    alt alta Else ifadesiyle birlikte de yazabilirsiniz. O zaman kalıbımız bu şekilde olacaktır.
    If koşul(lar) Then
    ‘Doğruysa Kodlarınız
    Else
    ‘Yanlışsa Kodlarınız
    End If

    Örnek kodlarımız..

    If Cells(i, "A") > 10 Then
        Cells(i, "B") = "Büyük"
            Else
        Cells(i, "B") = "Küçük"
    End If

    Yukarıdaki kod, 10‘dan büyük olan hücrelerin sütununa Büyük, küçük olanların da sütununa Küçük yazar.

     

    ELSEIF

    Şimdi de ElseIf DeğilseEğer ifadesini dahil ederek koşullarımızı artıralım.
    Bu kalıpta da mantığı kabaca şöyle düşünebilirsiniz; “Eğer bu böyleyse bunu yap, değilse eğer şöyleyse şunu yap, değilse eğer öyleyse onu yap.” gibi..

    Yazım Kalıbı bu şekildedir..
    If koşullar Then
    ‘kodlarınız
    ElseIf koşullar Then
    ‘kodlarınız
    ElseIf koşullar Then
    ‘kodlarınız
    End If

    Sonuc sütununa sonuçlarımızı bu şartlara göre yazdıralım.

    • Eğer sayı sıfıra eşitse Sıfır yazsın.
    • Eğer sayı 10’a eşitse Eşit yazsın.
    • Eğer sayı 10’dan küçükse Küçük yazsın.
    • Eğer sayı 10’dan büyükse Büyük yazsın.

    Belirttiğimiz bu şartlarımıza göre, bize gereken kodlar bu şekilde olacaktır..

    Sub Eger_Kosul_Yapısı_2()
        Dim i As Integer
        For i = 2 To Range("A65536").End(3).Row
            If Cells(i, "A") = 0 Then
                Cells(i, "B") = "Sıfır"
            ElseIf Cells(i, "A") = 10 Then
                Cells(i, "B") = "Eşit"
            ElseIf Cells(i, "A") < 10 Then
                Cells(i, "B") = "Küçük"
            ElseIf Cells(i, "A") > 10 Then
                Cells(i, "B") = "Büyük"
            End If
        Next i
    End Sub

    Bu kodları da gif resim üzerinde nasıl çalıştığını görerek daha net anlayabilirsiniz.

     

    ELSEIF ve ELSE BİRLİKTE

    Son olarak kodlarımıza, eğer yukarıda belirttiğimiz şartların hiçbirine uymuyorsa, o zaman End If satırından önce Else değilse ifadesi dahil edilerek, bu şekilde hücreye başka bir sonuç da yazdırılabilir.

    Sub Eger_Kosul_Yapısı_3()
        Dim i As Integer
        For i = 2 To Range("A65536").End(3).Row
            If Cells(i, "A") = 0 Then
                Cells(i, "B") = "Sıfır"
            ElseIf Cells(i, "A") = 10 Then
                Cells(i, "B") = "Eşit"
            ElseIf Cells(i, "A") < 10 Then
                Cells(i, "B") = "Küçük"
            Else
                Cells(i, "B") = "Büyük"
            End If
        Next i
    End Sub

     

    Daha fazla detay için Visual Basic’te Koşul Yapılarını buradan inceleyebilirsiniz.

     

    Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
    Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻