EXCEL VBA'DA EXİT SUB FONKSİYONU

 

Excel VBA'da (Uygulamalar için Visual Basic), Exit Sub ifadesi, bir prosedür (alt rutin) içinde alt rutinden hemen çıkmak ve kontrolü çağıran koda geri döndürmek için kullanılır. Bu ifade genellikle belirli bir koşul karşılandığında ve alt rutinin sonuna ulaşmadan yürütülmesini sonlandırmak istediğinizde kullanılır.


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

Excel VBA Çıkış Alt 1

20 sayıyı çalıştıracak bir FOR döngüsü başlatmak için bir alt rutin oluşturun. Burada, döngü numarası 15'e ulaşana kadar kontrol edin. Sonra, Immediate Sekmesinde “Goal Reached” yazdırın ve VBA Exit Sub'ı erken gerçekleştirin. Döngüden çıkmanızı ve alt rutinin geri kalanını yürütmemenizi sağlar.

Excel VBA Çıkış Alt 1-1

Burada döngü 1'den 15'e kadar çalışır. 15'e ulaşıldığında, VBA'daki Print fonksiyonu çalıştırılır ve i = 15 koşulu sağlandığında VBA Exit Sub koşulu sağlanır.

ÖNEMLİ NOKTALAR

  • Exit Sub, Visual Basic for Applications'da (VBA) bir Alt prosedürden (alt yordam) erken çıkmak için kullanılır.
  • Bir Alt prosedürünün içine yerleştirildiğinde, denetimi hemen Alt çağrısını takip eden ifadeye aktarır. Genellikle belirli bir koşul karşılandığında ve Alt'ın daha fazla yürütülmesine gerek olmadığında kullanılır.
  • Çıkış, Exit Sub'ın kullanıldığı belirli Sub prosedürüyle sınırlıdır. Kodun diğer bölümlerini etkilemez.
  • Daha dinamik ve duyarlı kod oluşturmak için sıklıkla koşullu ifadelerle (örneğin, VBA Exit Sub If…Then) birlikte kullanılır.

Excel VBA Çıkış Alt Prosedürü nasıl kullanılır?

Altyordam'da VBA Exit Sub Early'nin nasıl kullanılacağına dair bir örnek görmek için aşağıdaki Örneği inceleyin.

Adım 1: Excel Çalışma Kitabını açtıktan sonra Excel araç çubuğunda “Geliştirici” sekmesine tıklayın.

Excel VBA Çıkış Alt Prosedürü 1 nasıl kullanılır

“ Geliştirici ” sekmesinde , sol köşedeki “ Visual Basic ” seçeneğini seçin . VBA Düzenleyicisi açılır.

Excel VBA Çıkış Alt Prosedürü 1-1 nasıl kullanılır

Editör araç çubuğunda “Ekle”yi seçin, ardından açılır menüden “Modül”ü seçin. Kod yazabileceğiniz yeni bir boş sekme açılacaktır.

Excel VBA Çıkış Alt Prosedürü 1-2 nasıl kullanılır

Şimdi VBA Exit Sub Procedure'ın nasıl kullanılacağını öğrenmek için adımları takip edebilirsiniz.

Adım 2: Yuvarlatılmış değişkenleri kontrol etmek istediğiniz alt rutini adlandırarak başlayın.

Excel VBA Çıkış Alt Prosedürü 1-3 nasıl kullanılır

Adım 3: Excel VBA'da Decimal değerlerini tutmak için bir VBA Double değişkeni başlatın.

Excel VBA Çıkış Alt Prosedürü 1-4 nasıl kullanılır

Adım 4: Excel'de halihazırda mevcut olan Pi'nin VBA'daki Çalışma Sayfası Fonksiyonunu kullanarak double değişkenine pi değerini verin .

Excel VBA Çıkış Alt Prosedürü 1-5 nasıl kullanılır

Adım 5: Pi değerini 3 ondalık basamağa yuvarlayın ve yuvarlanan değerin 3.142'ye eşit olup olmadığını kontrol edin.

Excel VBA Çıkış Alt Prosedürü 1-6 nasıl kullanılır

Bunun için bir If koşulu başlatın ve VBA Çalışma Sayfası RoundUp fonksiyonunu pi değişkeni ve yuvarlanması gereken basamak sayısı ile kullanın.

VBA'daki Yuvarla işlevi bir sonraki en yüksek değeri seçer. Bu nedenle, 3.14159 değeri 3.142'ye yuvarlanacaktır.

Adım 6: Doğruysa Pi değerini yazdırın. Ardından alt rutinden çıkın. Else koşulunu kontrol etmeye gerek yok.

Excel VBA Çıkış Alt Prosedürü 1-7 nasıl kullanılır

Adım 7: Else koşulu için, “Yanlış Numara” olduğunu belirten bir Mesaj Kutusu yazdırın.

Excel VBA Çıkış Alt Prosedürü 1-8 nasıl kullanılır

Adım 8: Değeri kendisine ekleyin ve pi+pi toplamını pi değişkeninin kendisinde saklayın.

Excel VBA Çıkış Alt Prosedürü 1-9 nasıl kullanılır

Bu toplam değerini yazdırın ve alt rutinden çıkın. Sonra, If-Else VBA ifadesi bloğunu sonlandırın.

Excel VBA Çıkış Alt Prosedürü 1-10 nasıl kullanılır

Kod:

Sub roundFunc()

    Dim pi As Double

    pi = Application.WorksheetFunction.pi

    If Application.WorksheetFunction.RoundUp(pi, 3) = 3.142 Then

        MsgBox pi

        Exit Sub

    Else

        MsgBox “Wrong Number”

        pi = pi + pi

        MsgBox pi

        Exit Sub

    End If

End Sub

Adım 9: Yukarıdaki alt rutini çalıştırmak için Excel VBA Editöründeki araç çubuğundaki “F5” veya “Çalıştır” simgesine tıklayın. Bu, doğru şekilde yuvarlanmışsa pi değerini yazdırır. Aksi takdirde, pi değerinin iki katını yazdırır.

Excel VBA Çıkış Alt Prosedürü 1-11 nasıl kullanılır

VBA Exit alt if True yürütüldüğünden, Else kısmı kontrol edilmez veya yürütülmez. Bununla birlikte, çıktı görüntülendiği gibidir.


Örnekler

VBA Exit Sub'ın Hata İşleme ve koşulları kontrol etme amacıyla farklı şekillerde nasıl kullanılabileceğini görün.

Örnek 1

Bu örnekte, kişinin yetişkin (21 yaş ve üzeri) olup olmadığını kontrol etmek için bir sistem oluşturmanız gerekir. Bu, bir If-Else ifadesi kullanılarak yapılabilir ve koşul False ise, alt rutinden çıkmalıyız. Ayrıca, geçersiz bir girdi verildiğinde alt rutinden çıkmanız gerekir.

Adım 1: Bir kişinin yetişkin olup olmadığını kontrol etmek için alt rutini adlandırmakla başlayın.

VBA Çıkış Alt Örneği 1

Adım 2: VBA InputBox fonksiyonunu kullanarak kullanıcıdan kişinin yaşını alın ve özel değerler elde edin.

VBA Çıkış Alt Örneği 1-1

Adım 3: VBA IsNumeric fonksiyonunu kullanarak girdinin bir sayı olup olmadığını kontrol edin.

VBA Çıkış Alt Örneği 1-2

Adım 4: Eğer girdi bir rakamsa, girdi rakamının 21'den küçük olup olmadığını kontrol eden iç içe geçmiş bir If ifadesiyle devam edin.

VBA Çıkış Alt Örneği 1-3

Adım 5: Verilen sayı 21'den küçükse, kişinin "Yetişkin değil" olduğunu belirten bir mesaj yazdırın ve ardından alt rutinden çıkın.

VBA Çıkış Alt Örneği 1-4
  • vbExclamation, ileti kutusuna simgeler yerleştirmek için kullanılan bir sabittir. Bu, ileti kutusuna sarı bir üçgen içinde bir ünlem işareti yazdırır.

Adım 6: Else ifadesinde, girdi 21'den büyük veya eşitse, vbInformation sabitiyle birlikte yaşı yazdıran başka bir Mesaj Kutusu işlevini başlatın. Ardından, If-Else ifadesi bloğunu sonlandırın.

VBA Çıkış Alt Örneği 1-5

VbInformation, VBA'da Mesaj Kutusuna bir simge yazdırabileceğiniz mesaj kutusundaki bir anahtar kelimedir .

Neresi

  • vb – Visual Basic
  • Bilgi – İkon adı.

Adım 7: Verilen girdinin bir sayı değil de başka bir veri tipi olması durumunda, o senaryo için Else bloğunu yazın.

VBA Çıkış Alt Örneği 1-6

Else bloğunda, mesaj kutusuyla birlikte mesajı yazdırın, “Geçersiz Giriş” ve sonra alt rutinden çıkın. Sonra If ifadesini sonlandırın.

Kod:

Sub exit_example()

    Dim age As Integer

    age = InputBox(“Yaşınızı giriniz:”, “Yetişkin veya değil”)

    If IsNumeric(age) Then

        If age < 21 Then

            MsgBox “Yetişkin değil”, vbExclamation

            Exit Sub

        Else

            MsgBox “Yetişkinsin ” & age, vbInformation

        End If

    Else

        MsgBox “Geçersiz giriş”

        Exit Sub

    End If

End Sub

Adım 8: Excel Çalışma Sayfasındaki makroları çalıştırarak kodu çalıştırın . Excel Çalışma Kitabındaki mevcut Makrolar açılacaktır.

VBA Çıkış Alt Örneği 1-7
VBA Çıkış Alt Örneği 1-8

Adım 9: Çalıştırmanız gereken alt rutini seçin. Ardından “Çalıştır”a tıklayın. Alternatif olarak, çalıştırmak için makro alt rutinine çift tıklayabilirsiniz. Sonuç gösterildiği gibidir.

VBA Çıkış Alt Örneği 1-9
VBA Çıkış Alt Örneği 1-10

Mesaj kutusuna gömülü vbInformation ikonudur.

21 yaşından küçük bir yaş yazarsanız şunu elde edersiniz:

VBA Çıkış Alt Örneği 1-11
VBA Çıkış Alt Örneği 1-12

Mesaj kutusuna gömülü vbExclamation simgesidir. Geçersiz bir çıktı yazarsanız.

VBA Çıkış Alt Örneği 1-13
VBA Çıkış Alt Örneği 1-14


Örnek 2

Bu örnekte, VBA Exit Sub on Error'ı kullanmayı öğreneceksiniz. Hatalar, tür uyumsuzluğundan 0'a Bölmeye kadar değişebilir. Bu hatalar, bir sistemdeki diğer işlemleri durdurabilir. Bu nedenle, bu durumu aşmak için VBA Exit Sub on Error'ı kullanabilirsiniz. Bunu nasıl yapacağınıza dair süreç aşağıda görülebilir.

Adım 1: Bir alt rutinde oluşan hataları ele almak için bir alt rutin tanımlayarak başlayın .

VBA Çıkış Alt Örneği 2

Adım 2: Bir tamsayı değişkeni tanımlayın ve ona bir değer verin. Burada, 5 olarak tanımlanmıştır.

VBA Çıkış Alt Örneği 2-1

Adım 3: Tekrarlayan bir değişken başlatın ve ardından hata işleme gerçekleştirin. Bir hata oluşması durumunda, hata işleme satırı yürütülür ve Errorhandler bölümünü yürütür.

VBA Çıkış Alt Örneği 2-2

Adım 4: 1'den 6'ya kadar bir FOR döngüsü başlatın.

VBA Çıkış Alt Örneği 2-3

Adım 5: Yinelemeli değişkeni 1. adımda tanımlanan tamsayı değişkenine bölün. Ardından, bölüm değerini Immediate sekmesinde yazdırın. Bundan sonra, tamsayı değişkenini bir azaltın ve FOR döngüsüne devam edin.

VBA Çıkış Alt Örneği 2-4
VBA Çıkış Alt Örneği 2-5

Bu şekilde yinelemeler arttıkça tam sayı değişkeni 0'a düşerek 0'a bölme hatası oluşmaktadır.

Adım 6: FOR döngüsünden sonra kodun Errorhandler bölümünü tanımlayın.

VBA Çıkış Alt Örneği 2-6

Adım 7: vbExclamation simgesini kullanarak bir Mesaj Kutusunda hata açıklamasını yazdırın.

VBA Çıkış Alt Örneği 2-7

vbExclamation, Mesaj Kutusu'na ünlem simgesini yerleştirmek için kullanılan bir sabittir.

Kod:

Sub Err_Handel()

    Dim a As Integer

    a = 5

    Dim c As Long

    On Error GoTo Errorhandler

    For c = 1 To 6

        no = c / a

        Debug.Print no

        a = a – 1

    Next c

Errorhandler:

    MsgBox Err.Description, vbExclamation

    Exit Sub

End Sub

Adım 8: Yukarıda tanımlanan alt yordamı çalıştırın. Hemen sekmesindeki bölüm değerlerini yazdıracak ve alt yordamdan çıkarken hata işleme mesajını yazdıracaktır.

VBA Çıkış Alt Örneği 2-8
VBA Çıkış Alt Örneği 2-9

Birden fazla alt rutin ve fonksiyonla çalışırken işe yarar. Bir alt rutin bir hata nedeniyle çalışmayı durdurursa, diğer tüm prosedürleri durdurabilir. Bu nedenle, Hata işlemeyi kullanmak ve bir hata oluştuğunda alt rutinlerden çıkmak hata ayıklamayı ve hatanın kaynağını bulmayı çok kolaylaştırır.


Dikkat Edilmesi Gereken Önemli Noktalar

  • Kod okunabilirliğini artırmak için Exit Sub'ı neden kullandığınızı açıklamak için yorumlar kullanın.
  • Beklenmeyen durumları ele almak için Exit Sub'ı hata işlemeyle birleştirebilirsiniz. Uygun hata işlemeyi uygulamadan yalnızca Exit Sub'a güvenmeyin.
  • Bir fonksiyondan VBA Exit Sub kullanmayın; bunun yerine Exit Function kullanın.
  • Kod akışını karmaşıklaştırabileceğinden, birden fazla Exit Sub ifadesi içeren, derinlemesine iç içe geçmiş alt rutinlerden kaçının.

1) VBA'daki "Exit Sub" otomatik olarak kaynakları veya değişkenleri temizler mi?

Hayır, VBA'daki "Exit Sub" otomatik olarak kaynakları veya değişkenleri temizlemez. Geriye kalan kodu yürütmeden alt rutinden çıkar. Gerekirse temizleme kodda açıkça işlenmelidir.

2) VBA'da bir Sub prosedürünün dışında “Exit Sub” kullanırsam ne olur?

VBA'da bir Sub prosedürünün dışında "Exit Sub" kullanırsanız, derleme hatasıyla sonuçlanacaktır. "Exit Sub", Sub prosedürlerinden erken çıkmak için Sub prosedürleri içinde kullanılmak üzere tasarlanmıştır.

3) VBA'da bir döngüden çıkmak için “Exit Sub” komutunu kullanabilir miyim?

Evet, VBA'da bir döngüden çıkmak için "Exit Sub"ı kullanabilirsiniz. Bunu, bir If koşulu başarısız olduğunda alt rutinden çıkacak şekilde ayarlayabilirsiniz.

4) VBA’da “Exit Sub” ve “End Sub” arasında bir fark var mıdır?

Evet, bir fark var:

“Exit Sub”, bir Sub prosedüründen erken çıkmak ve kontrolü çağıran koda geri vermek için kullanılır.
“End Sub”, bir Sub prosedürünün sonunu işaretlemek için kullanılır, ancak erken çıkmaz; kod sona ulaşana kadar yürütülmeye devam eder.

Yorum Gönder

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