Excel'deki VBA If Else ifadesi, koşulları test etmek ve sonuca göre farklı eylemlerde bulunmak için kullanılan bir karar alma yapısıdır. VBA programınızın belirli bir koşulun karşılanıp karşılanmadığına göre hangi kodun yürütüleceğini seçmesini sağlar. İfade, programın akışını kontrol etmeye yardımcı olur ve karmaşık ve dinamik VBA betikleri oluşturmada etkilidir. Mantıksal bir testi değerlendirerek ve ardından sonucun Doğru veya Yanlış olmasına bağlı olarak iki olası eylemden birini gerçekleştirerek çalışır.
Bir örneğe bakalım. Bu örnekte, "TestIfElseExample" adlı bir alt rutinimiz var. Bu kodun amacı, bir VBA IF ELSE ifadesinin kullanımını göstermektir. "Sayı" değişkenini 10 değeriyle başlatır ve 0'dan büyük olup olmadığını kontrol eder. Koşul doğruysa, bir ileti kutusu "Sayı pozitif." Aksi takdirde, koşul yanlışsa, başka bir ileti kutusu "Sayı pozitif değil." gösterir.


Bu kodun çıktısı, "Sayı pozitiftir." mesajını gösteren yukarıdaki mesaj kutusu olacaktır. "Sayı" (10) değeri, IF ifadesindeki koşulu karşılayarak, bunun gerçekten pozitif olduğunu gösterir.
ÖNEMLİ NOKTALAR
- VBA Excel'deki If Else ifadesi, koşulları test etmek ve sonuca göre farklı eylemlerde bulunmak için kullanılan bir karar verme yapısıdır.
- If Else ifadesi, ElseIf parçalarını kullanarak birden fazla koşul içerebilir ve koşullar yukarıdan aşağıya doğru değerlendirilir.
- VBA'da, bir "VBA IF Else Do Nothing" eylemini gerçekleştirmek için bir IF ELSE ifadesi kullanıldığında, "END IF" ifadesini dahil etmeye gerek yoktur. Bunun yerine, IF ifadesindeki koşul yanlışsa, program basitçe IF-ELSE bloğundan sonraki bir sonraki kod satırına geçer.
- VBA IF ELSE IF ifadesi, birden fazla koşulun sırayla değerlendirilmesine olanak tanır. IF ELSE IF ifadeleri kullanılırken, tüm bloğu “END IF” ile kapatmak önemlidir.
VBA If Else İfadesinin Sözdizimi
VBA'da VBA If Else ifadesinin genel söz dizimi aşağıdaki gibidir.
If condition Then
‘Eğer koşul doğruysa
Else
‘Eğer koşul doğru değilse
End If
Bu sözdiziminde, 'koşul', VBA If Else ifadesinin değerlendirdiği Excel'deki mantıksal bir testtir . Koşul doğruysa, 'Then' anahtar kelimesini izleyen kod yürütülür. Koşul yanlışsa, 'Else' anahtar kelimesini izleyen kod yürütülür.
VBA If Else ifadesi, birden fazla koşulu test etmek için iç içe yerleştirilebilir ve ayrıca ek koşulları test etmek için ElseIf parçalarını da içerebilir. ElseIf parçaları olan bir If Else ifadesinin sözdizimi şudur :
If condition1 Then
‘Eğer koşul 1 doğruysa yürütülecek kod
ElseIf condition2 Then
‘Eğer koşul 1 yanlış ve koşul 2 doğruysa yürütülecek kod
Else
‘Eğer koşul 1 ve koşul 2 yanlışsa yürütülecek kod
End If
VBA If Else İfadesinin Çalışması
VBA IF ELSE ifadesi, belirtilen bir koşula dayalı olarak bir programda karar almanın bir yolunu sağlar. İşte nasıl çalıştığı:
- VBA IF ELSE ifadesi, "If" anahtar sözcüğüyle başlar ve ardından parantez içinde bir koşul gelir. Koşul genellikle doğru veya yanlış olarak değerlendirilen bir ifadedir.
- Koşul doğruysa, “Then” ifadesinin içindeki kod bloğu yürütülür. Bu blok, koşul karşılandığında gerçekleştirilecek eylemleri içerir.
- Koşul yanlışsa, program ” VBA IF ELSE Then” ifadesinin içindeki kod bloğunu atlar ve “Else” ifadesinin içindeki kod bloğuna geçer (isteğe bağlı). Bu blok, koşul karşılanmadığında yürütülmesi gereken eylemleri içerir.
- Uygun kod bloğunu çalıştırdıktan sonra program, VBA IF ELSE ifadesini takip eden kodun geri kalanını çalıştırır.
VBA IF ELSE ifadesi, programın koşulun değerlendirmesine göre farklı eylemler arasında seçim yapmasına olanak tanır. Programın akışını kontrol etmenin ve buna göre farklı görevler gerçekleştirmenin bir yolunu sağlar.
Örnekler
Örnek 1: Temel If Else İfadesi
Bu örnek, bir sayının pozitif mi yoksa negatif mi olduğunu test eden basit bir If Else ifadesini göstermektedir.
Adım 1: Excel’i açın ve VBA düzenleyicisini açmak için “ALT + F11” tuşlarına basın.

Adım 2: Menüden “Ekle”ye tıklayıp “Modül”ü seçerek yeni bir modül ekleyin.

Adım 3: “TestIfElse” adında bir alt rutin tanımlayın.

Adım 4: "number" adlı bir değişkeni tam sayı VBA veri türü olarak bildirin . Bu değişken kontrol etmek istediğimiz sayıyı depolayacaktır.

Adım 5: "sayı" değişkenine -10 değerini atayın. Bu durumda, test amaçlı olarak değişkene -10 atıyoruz.

Adım 6: "number" değerinin 0'dan büyük veya eşit olup olmadığını kontrol edin . Bu satır, parantez içindeki koşulu değerlendirmek için bir "If" ifadesi başlatır.

Adım 7: Koşul doğruysa, "Sayı pozitiftir." diyen bir mesaj kutusu görüntüle. Bu satır, "If" ifadesinin içindeki koşul doğruysa yürütülür.

Adım 8: Koşul yanlışsa, “Else” bloğunun içindeki kodu yürütün. “If” ifadesinin içindeki koşul yanlışsa program bu satıra geçer.

Adım 9: "Sayı negatiftir." diyen bir mesaj kutusu gösteriyoruz. Bu satır, "If" ifadesinin içindeki koşul yanlışsa yürütülür ve sayının negatif olduğunu gösterir. Bunu End If ifadesi takip eder.

Adım 10: Alt yordamı sonlandırın. Bu satır alt yordamın sonunu işaretler ve programın çağrıldığı yerden çalışmaya devam etmesi gerektiğini belirtir.
Adım 11: Modülü kaydedin ve VBA'yı kapatın. Şimdi VBA Makro menüsünü açmak için Alt + F8 tuşlarına basın, “TestIfElse”i seçin ve kodu çalıştırın.

Adım 12: Kodu çalıştırdığınızda “Sayı negatiftir.” mesaj kutusunu göreceksiniz.

İşte kodun tamamı.
Sub TestIfElse()
Dim number As Integer
number = -10
If number >= 0 Then
MsgBox “Sayı pozitiftir.”
Else
MsgBox “Sayı negatiftir.”
End If
End Sub
Örnek 2: Birden Fazla Koşula Sahip If Else İfadesi.
Bu örnek, ElseIf kullanarak birden fazla koşula sahip bir If Else ifadesini göstermektedir. Burada, elde edilen puana göre notları yazdırıyoruz.
Adım 1: Yeni modülde “TestIfElseIf” adında bir alt rutin tanımlayın.

Adım 2: "score" adlı bir değişkeni tam sayı olarak bildirin. Bu değişken değerlendirmek istediğimiz puanı saklayacaktır.

Adım 3: “Puan” değişkenine 85 değerini atayın.

Adım 4: "Skor" değerinin 90'dan büyük veya eşit olup olmadığını kontrol edin. Bu satır, parantez içindeki koşulu değerlendirmek için bir "Eğer" ifadesi başlatır.

Adım 5: Koşul doğruysa, “Not: A” yazan bir mesaj kutusu görüntüle. Bu satır, “If” ifadesinin içindeki koşul doğruysa yürütülür.

Adım 6: Benzer şekilde, “ElseIf” ifadesini kullanarak “puan” değerinin 80’den büyük veya eşit olup olmadığını kontrol edin.

Adım 7: Koşul doğruysa, “Not: B” mesaj kutusunu görüntüleyin.

Adım 8: Başka bir “ElseIf” ifadesi kullanarak “puanın” 70’ten büyük veya eşit olup olmadığını kontrol ediyoruz.

Adım 9: Koşul doğruysa, “Not: C” mesaj kutusunu görüntüleyin.

Adım 10: Önceki koşullardan hiçbiri doğru değilse, “Else” bloğunun içindeki kodu yürütün. “Not: F” yazan bir mesaj kutusu görüntüleyin. Önceki koşullardan hiçbiri doğru değilse, bu satır yürütülür ve başarısız notu belirtir.

Adım 11: “If” ifadesini sonlandırın. Bu satır “If” ifadesinin sonunu işaretler ve programın “If” bloğundan sonra çalışmaya devam etmesi gerektiğini belirtir.

Adım 12: Modülü kaydedin ve VBA'yı kapatın. Şimdi Makro menüsünü açmak için Alt + F8 tuşlarına basın, “TestIfElseIf”i seçin ve kodu çalıştırın.

Adım 13: Kodu çalıştırdığınızda, "Not: B" mesaj kutusunu göreceksiniz, çünkü verdiğimiz puan 85'tir ve bu da B kategorisine girer.

İşte kodun tamamı:
Sub TestIfElseIf()
Dim score As Integer
score = 85
If score >= 90 Then
MsgBox “Grade: A”
ElseIf score >= 80 Then
MsgBox “Grade: B”
ElseIf score >= 70 Then
MsgBox “Grade: C”
Else
MsgBox “Grade: F”
End If
End Sub
