Excel VBA Kesme Noktası Nedir?
Belirtilen bir koşul karşılandığında, belirtilen döngü hala çalışıyor olsa bile, döngülerden çıkmak için başka bir kesme noktası kullanılır. Genellikle, bu tür döngü kesme noktası FOR NEXT ve DO WHILE döngülerinde kullanılır.
Örneğin aşağıdaki görsele bakın.

Kırmızı vurgulanan çizgi, makro prosedüründe uygulanan kesme noktasıdır. Kodu çalıştırmayı denediğimizde, makro kesme noktasını (kırmızı nokta) bulana kadar çalışacak ve orada duracak ve hatta sağ vurgulanan satır bile çalıştırılmayacaktır.
Önemli Noktalar
- VBA break'i kullanarak, herhangi bir sorun devam ederse breakpoint'ler uygulayabilir ve kodu hata ayıklayabiliriz.
- Kırmızı çizgi, koda uygulanan kesme noktasını gösterir.
- VBA breakpoint kodun belirli bir satırda durdurulmasını sağlar.
- Exit…For, bir döngünün birçok kez çalışması gerektiği halde, belirli mantıksal koşul sağlandığında döngüden çıkmak için kullanılır.
VBA'da neden kesme noktasına ihtiyacımız var?
Herhangi bir programlama dilinde, başlangıçta hatalar olması kaçınılmazdır. Bunları çözmeye çalıştığımızda, satır satır test etmeliyiz. Çok sayıda kod satırı çalıştırmak istiyorsanız, bunları hızlı bir şekilde düzeltmek için kesme noktaları uygulamanız gerekir.
Örneğin, 50 satır kodumuz olduğunu ve kodun ilk 30 satırında hata olmadığından emin olduğumuzu varsayalım. Kodu yalnızca 31. satırdan itibaren kontrol etmeliyiz . Bu durumda, 31. satıra ulaşmak için kodun ilk 30 satırını satır satır çalıştırmalıyız . Ancak, kesme noktasını kullanarak, ilk 30 satır kodu tek tıklamayla hızlıca çalıştırabilir ve yürütmeyi 31. satırda durdurabiliriz . Şimdi, hatayı 31. satırdan bulmak için adım adım yöntemi kullanabiliriz (F8, kodları satır satır yürütmek için kısayol tuşudur) .
Bir döngü söz konusu olduğunda, döngüyü 100 kere çalıştırmamız gerekebilir ancak döngü 50. seferde belirli koşullar sağlandığı takdirde , 100. sefere ulaşmadan döngüyü bozabiliriz .
VBA'da Kesme Noktaları Nasıl Uygulanır?
Kodu hata ayıklamak için kesme noktalarını iki şekilde uygulayabiliriz: manuel yol ve kısayol tuşu.
Döngü kesme noktasından önce hata ayıklama kesme noktasına bakalım.
Örnek 1 – Hata Ayıklama için Kesme Noktası
1 – Manuel Yöntem
Kesme noktasını manuel ve kısayol yöntemleriyle hata ayıklama için uygulayabiliriz. Kesme noktasını manuel yöntemi kullanarak uygulamanın bir örneğini gösterelim.
Örneğin aşağıdaki koda bakın.
Sub Break_Point_Example1()
Dim x As Long
Dim y As String
ActiveSheet.Range(“A1”).Value = “Excel VBA Break Point”
ActiveSheet.Name = “VBA Break Point”
x = “New York”
y = “Londra”
Range(“B1”).Value = x
Range(“C1”).Value = y
End Sub
F5 kısayol tuşuna basarak kodu tek seferde çalıştıralım ve ne olacağını görelim.

Kodu çalıştırdığımızda, “Run-time error '13':” Type Mismatch hatasıyla karşılaştık. “Debug”a tıklayın ve bizi hatayla karşılaştığı satıra götürecektir.

Sarı renkle vurgulanan çizgi hatanın gösterildiği yerdir.
Bu nedenle, kodu hata ayıklamaya çalıştığımızda, hata aldığımız satıra kadar kodu yürütmeliyiz. Bunu yapmak için bir kesme noktası uygulayabiliriz.
Kodun hata satırı için hata satırı kodunun sol kenar boşluğuna tıklayın.

Kodun sol kenarına tıkladığımız anda bir kesme noktası uygulanıyor ve kodun tüm satırı kırmızıyla vurgulanıyor.

Şimdi, kodu çalıştırırsak, bir kesme noktası görene kadar çalışacak ve kesme noktasının satırında duracaktır. Kesme noktası satırında kırmızı ve sarı karışımını görebiliriz.

Böylece kodun belirli bir satırına kesme noktası uygulayarak kodu hata ayıklayabiliriz.
Çözüm: Şimdi, hatanın neden alındığına bakalım. Hata mesajını x = “New York.” satırında alıyoruz.

Burada x değişkenine “New York” değerini atıyoruz ve aldığımız hata tür uyuşmazlığı hatası oluyor.

Kodun ilk satırına bakalım, burada bir değişken tanımladık.

Bu satırda, "x" adlı bir değişken tanımladık ve bu değişkene yalnızca sayısal değerleri tutabilen "Long" adlı bir VBA veri türü atadık.
Ancak şimdi hata kodu satırına bakalım.

Bu satırda, yalnızca sayısal bir değer tutabilen "x" değişkenine "New York" değerini atadık. Bu nedenle, " Tür uyumsuzluğu " hatasını alıyoruz.
Bu hatayı çözmek için veri türünü “Long”dan “String”e değiştirmeliyiz.

Artık kod herhangi bir hata olmadan çalışacaktır.
2 – Kısayol Yöntemi
Kesme noktasını kısayol yöntemini kullanarak da uygulayabiliriz. Kesme noktasını uygulamak için Excel kısayol tuşu F9'dur.
İmlecinizi hata kodunun bulunduğu satıra getirin.

Hata kodunun önüne imleci getirdikten sonra F9 kısayol tuşuna basın. Bu, satıra kesme noktasını uygulayacaktır.

Bu kırmızı çizgi VBA kesme modunun açık olduğunu gösterir.
Örnek 2 – Döngülerde Kesme Noktası
Kodlamanın olmazsa olmaz parçalarından biri de VBA döngüsü içerisinde kod çalıştırıldığında belirtilen koşulun sağlanması için döngülerden çıkmaktır .
Örneğin, aşağıdaki FOR NEXT LOOP koduna bakın.
Sub Break_Point_Example2()
Dim k As Long
For k = 2 To 11
If Cells(k, 1).Value = “” Then
Cells(k, 1).Value = k – 1
Else
MsgBox “Boş olmayan bir hücre bulundu ve döngüden çıkılıyor (Found a non blank cell and exiting the loop)”
Exit For
End If
Next k
End Sub
A2'den A11'e kadar olan hücrelere 1'den 10'a kadar olan seri numaralarını ekleyecektir. Bu kodu çalıştırmadan önce, A2'den A11'e kadar olan çalışma sayfası alanına bakalım.

A7 hücresinde bazı değerlerimiz var, ancak mevcut FOR LOOP kodu A2 ila A11 aralığındaki değerlerle ilgilenmiyor. Kodu çalıştırdığımızda 1'den 10'a kadar seri numaraları ekleyecek ve bu senaryoda döngü on kez çalışacak.

Kod, A7 hücresinde bulunan değerin üzerine yazdı. Döngü çalışırken çıkmamız veya VBA'nın kesilmesi gerektiğini varsayalım, ardından mantıksal koşulu uygulamamız gerekir ve EXIT FOR uygulanacaktır. Aşağıdaki koda bakın.

Mevcut döngü hücresinin boş olup olmadığını kontrol etmek için döngü içerisinde IF koşulunu uyguladık.
Mevcut döngü hücresi boşsa, bir seri numarası ekleyecek ve boş değilse, "Boş olmayan bir hücre bulundu ve döngüden çıkılıyor" mesajını görüntüleyecektir. Döngüyü "Çıkış İçin" anahtar sözcüğüyle kıracaktır.
Kodu çalıştırmadan önce çalışma sayfasına bakalım.

Kodu çalıştırın ve sonucu görün.

Görüldüğü gibi, döngü beş kez çalıştı ve 6. denemede A7 hücresindeki değeri buldu. Bu nedenle, VBA kesme kodu mesajını gösterdi ve “Exit For” aracılığıyla VBA kesme noktasını tetikledi.
“Tamam”a tıkladığınızda “FOR döngüsü” kırılacaktır.
Dikkat Edilmesi Gereken Önemli Noktalar
- VBA kesme noktasını uygulamak için kısayol tuşu F9'dur.
- VBA kesme bağlantıları uygulandığında, yürütme yalnızca o satırda durur ve kullanıcı manuel olarak yürütene kadar ileri gitmez.
- Çıkış döngüsü VBA kesme noktasıyla uygulandığında, döngü kalan sayıda çalışmayacaktır.
Örneğin aşağıdaki koda bakın.
Kodun 3. satırına bir VBA kesme noktası uygulandı. Kesme noktasını durdurmak istersek, kırmızı nokta dairemizin olduğu sol kenara tıklayabiliriz.
VBA kesme modundan çıkmak için, imlecinizi kesme noktası kod satırına getirin ve F9 kısayol tuşuna basın. Bu, kesme noktasını o satırdan kaldıracaktır.
Bir döngüyü kırmak için mantıksal bir koşul uyguladığımızda, döngüyü kırmak için koşul karşılanmalıdır. Aksi takdirde, VBA Break döngünün çalışmasını durdurmaz.
Hata işleme durumunda koddaki hatayı kırmak için “On Error” ifadesini kullanmalıyız.
