Excel VBA Hata Ayıklama Yazdırma, hata ayıklama süreci sırasında Immediate Window'a bilgi çıkışı veren bir ifadedir. Immediate Window, geliştiricilerin kodlarıyla etkileşime girmelerine ve ifadelerin çıktısını gerçek zamanlı olarak görüntülemelerine olanak tanıyan yerleşik bir VBA geliştirme aracıdır.
Debug Print ifadesi genellikle VBA kodunun yürütülmesi sırasında değişkenlerin, özelliklerin veya ifadelerin değerlerini görüntülemek için kullanılır. Programınızın değerleri ve akışı hakkında içgörüler sağlayarak kodunuzdaki hataları teşhis etmek ve düzeltmek için yararlı bir araçtır. Bir örneğe bakalım. Bu örnekte, Integer türünde bir x değişkeni tanımlıyoruz ve ona 10 değerini atıyoruz. Debug Print ifadesi daha sonra x değerini Immediate Window'a çıktı olarak vermek için kullanılır.

“Debug.Print “x değeri: ” & x” ifadesi, “x değeri: ” açıklayıcı metnini x değeriyle birleştirir. Kod yürütüldüğünde, Hemen Penceresi “x değeri: 10” çıktısını görüntüler.

- VBA Hata Ayıklama Yazdırma, hata ayıklama işlemi sırasında Anlık Pencereye bilgi çıkışı sağlamak için kullanılan bir ifadedir.
- VBA Debug Print Array metodunu kullanarak, bir döngü (örneğin, For döngüsü) kullanarak bir dizi içinde dolaşabilir ve elemanlarını yazdırabilirsiniz.
- VBA Hata Ayıklama Yazdırma ifadeleri, programın değerleri ve akışı hakkında bilgi sağlayarak koddaki hataları teşhis etmek ve düzeltmek için kullanılabilir.
- VBA Debug Print Range, bir aralıktaki değerleri incelemenize ve tutarsızlıkları veya beklenmeyen verileri belirlemenize yardımcı olabilir. Hata ayıklama sırasında aralıktaki verileri hızlı bir şekilde kontrol etmenizi sağlar.
Excel VBA Debug.Print Nasıl Kullanılır?
Excel VBA Debug Print'i kullanmak için şu adımları izleyin:
Adım 1: Visual Basic Düzenleyicisini açın.
Excel'de, Visual Basic Düzenleyicisi'ni (VBE) açmak için ALT + F11 tuşlarına basın.

Adım 2: VBE’de menü çubuğunda “Ekle”ye tıklayın ve “Modül”ü seçin. Bu, projeye yeni bir modül ekleyecektir.

Adım 3: Modülde VBA kodunuzu yazın . Kodunuzda, Immediate Window'a bilgi çıkışı yapmak istediğiniz herhangi bir noktaya Debug.Print ifadesini ekleyebilirsiniz.
Örneğin, aşağıdaki kodu ele alalım:
Alt CalculateSum()
Dim num1 As Integer
Dim num2 As Integer
Dim sum As Integer
num1 = 10
num2 = 20
sum = num1 + num2
Debug.Print “num1 ve num2'nin toplamı: ” & sum
End Sub
Adım 4: VBA kodunu çalıştırmak için VBE'yi kapatın ve Excel'e dönün. "Makro" iletişim kutusunu açmak için ALT + F8 tuşlarına basın. Çalıştırmak istediğiniz makroyu seçin (örneğin, "CalculateSum") ve "Çalıştır" düğmesine tıklayın.
Adım 5: Kodu çalıştırdıktan sonra CTRL + G tuşlarına basarak veya “Görünüm” -> “Anında Pencere” seçeneğine giderek Hemen Pencereyi açın. Debug.Print ifadesi tarafından oluşturulan çıktı Anında Pencerede görüntülenecektir.

Örnekler
VBA Debug.Print ifadesinin farklı senaryolarda nasıl uygulanacağına dair bazı örneklere bakalım.
Örnek 1 – Değişkenlerin Değerlerinin Görüntülenmesi.
Bu örnekte, Debug.Print ifadesi, "isim", "yaş" ve "maaş" değişkenlerinin değerlerini Anlık Pencerede görüntülemek için kullanılmıştır.
Adım 1: Yeni modülde, “DisplayVariables” adlı bir alt rutin oluşturun ve üç değişken bildirin: name (String), age (Integer) ve salary (Double).

Adım 2: Değişkenlere değerler atayın: name = “John Doe,” age = 30, salary = 5000.50.

Adım 3: Debug.Print ifadesi, değişkenlerin değerlerini Hemen Penceresinde görüntülemek için kullanılır.

- Debug.Print “Name: ” & name – “Name: ” metnini name değişkeninin değeriyle birleştirir ve bunu Anlık Pencerede görüntüler.
- Debug.Print “Age: ” & age, “Age: ” metnini age değişkeninin değeriyle birleştirir ve bunu Anlık Pencerede görüntüler.
- Debug.Print “Maaş: ” & salary, “Maaş: ” metnini salary değişkeninin değeriyle birleştirir ve bunu Anlık Pencerede görüntüler.
Adım 4: Modülü kaydedin ve kodu çalıştırın. Kod yürütüldüğünde, değişkenlerin aşağıdaki değerleri VBA Hata Ayıklama Yazdırma Penceresi veya aynı zamanda Hemen penceresi olarak da bilinir aracılığıyla gösterilir:

İşte kodun tamamı:
Sub DisplayVariables()
Dim name As String
Dim age As Integer
Dim salary As Double
name = “John Doe”
age = 30
salary = 5000.5
Debug.Print “Name: ” & name
Debug.Print “Age: ” & age
Debug.Print “Salary: ” & salary
End Sub
Örnek 2 – Dosyaya Yazdırma Hata Ayıklama
Bu örnek, Debug.Print çıktısının bir dosyaya nasıl yönlendirileceğini gösterir. Open ifadesi, bir dosyayı yazma modunda açmak için kullanılır ve Debug.Print ifadesi, çıktıyı dosyaya yazdırmak için dosya numarası (#fileNum) ile öneklenir. Son olarak, "Close" ifadesi dosyayı kapatmak için kullanılır.
Adım 1: Yeni modülde, PrintToFile” adlı bir alt rutin oluşturun ve dosya numarasını tutmak için Integer türünde bir fileNum değişkeni bildirin.

Adım 2: Kullanılabilir bir dosya numarası almak ve bunu fileNum'a atamak için FreeFile fonksiyonunu kullanın.

Adım 3: Open ifadesini kullanarak bir dosyayı yazma modunda açın ve onu fileNum dosya numarasıyla ilişkilendirin.
Bu örnekte, “”C:\Users\Vikram\Desktop\My name is John Smith.txt”” dosya yolu kullanılmıştır. İstediğiniz konuma ve dosya adına göre bunu değiştirebilirsiniz.

Adım 4: İstenilen metni dosyaya yazdırmak için Debug.Print ifadesini dosya numarasıyla (#fileNum) kullanın.

“Bu satır bir dosyaya yazdırılacak.” metni fileNum ile ilişkili dosyaya yazılacak.
Adım 5: Dosya kaynaklarını serbest bırakmak için Close ifadesini kullanarak dosyayı kapatın.

Adım 6: VBA makrosunu kaydedin ve kodu çalıştırın. Kod yürütüldüğünde, belirtilen metin belirtilen konumdaki dosyaya yazdırılacaktır.

İşte kodun tamamı:
Sub PrintToFile()
Dim fileNum As Integer
fileNum = FreeFile
Open “C:\Output.txt” For Output As fileNum
Print #fileNum, “Bu satır bir dosyaya yazdırılacak.”
Close fileNum
End Sub
Örnek 3 – Bir Sayının Faktöriyelinin Anlık Pencerede Görüntülenmesi.
Bu örnek bir sayının faktöriyelini hesaplar ve sonucu Debug.Print kullanarak görüntüler. 1'den verilen sayıya kadar olan sayıları çarparak faktöriyeli hesaplamak için bir döngü kullanır. Çıktı daha sonra Immediate Window'da yazdırılır.
Adım 1: Yeni modülde, “CalculateFactorial” alt rutinini oluşturarak başlayın ve iki değişken bildirin: sayıyı depolamak için num (Integer) ve faktöriyeli depolamak için factorial (Double).

Adım 2 : num'a bir değer atayın (örneğin, num = 5).

Adım 3 : Başlangıç değeri olarak faktöriyeli 1 olarak ayarlayın.

Adım 4: Faktöriyel değişkenini 1'den num'a kadar olan sayılarla çarparak faktöriyeli hesaplamak için bir For döngüsü kullanın.

Döngü, i döngü değişkenini kullanarak 1'den num'a kadar yineleme yapar. Faktöriyel, döngü içerisinde i'nin geçerli değeriyle çarpılarak güncellenir .
(faktöriyel = faktöriyel * i).
num = 5 için döngü 1'den 5'e kadar çalışır ve faktöriyeli aşağıdaki gibi günceller:
Tekrar 1: faktöriyel = 1 * 1 = 1
Tekrar 2: faktöriyel = 1 * 2 = 2
Tekrar 3: faktöriyel = 2 * 3 = 6
4. Tekrar: faktöriyel = 6 * 4 = 24
5. Yineleme: faktöriyel = 24 * 5 = 120
Adım 5: Hesaplanan faktöriyeli Hemen Pencerede görüntülemek için VBA Debug.Print'i kullanın.

Adım 6: Kod yürütüldüğünde, Hemen Pencere verilen sayının (bu durumda 5) faktöriyelini şu şekilde gösterecektir: “5'in faktöriyeli: 120'dir”.

İşte tam kod:
Sub CalculateFactorial()
Dim num As Integer
Dim factorial As Double
num = 5
factorial = 1
For i = 1 To num
factorial = factorial * i
Next
Debug.Print “The factorial of ” & num & ” is: ” & factorial
End Sub
Örnek 4 – Etkin Çalışma Kitabının Tam Adını Yazdırma
Bu örnekte, VBA Debug Print etkin çalışma kitabının tam adını görüntülemek için kullanılır. ThisWorkbook nesnesinin FullName özelliği, ampersand (&) operatörü kullanılarak açıklayıcı metinle birleştirilen çalışma kitabının tam yolunu ve adını döndürür.
Adım 1: “PrintWorkbookName” adlı yeni bir alt rutin oluşturarak başlayın

Adım 2: “ThisWorkbook” nesnesi, etkin çalışma kitabına (VBA kodunun çalıştığı çalışma kitabı) başvurmak için kullanılır.

Adım 3: “ThisWorkbook” nesnesinin “FullName” özelliği, çalışma kitabının tam yolunu ve adını almak için kullanılır.

FullName özelliği çalışma kitabının tam yolunu ve adını temsil eden bir dize döndürür.
Adım 4: Debug.Print ifadesi, etkin çalışma kitabının tam adını Anlık Pencerede görüntülemek için kullanılır.

Debug.Print ifadesi, açıklayıcı metni etkin çalışma kitabının tam adıyla birleştirir ve bunu Hemen Pencerede görüntüler.
Adım 5: Modülü kaydedin ve kodu çalıştırın. Kod yürütüldüğünde, Hemen Penceresi etkin çalışma kitabının tam adını gösterecektir.

İşte kodun tamamı:
Sub PrintWorkbookName()
Debug.Print “Etkin çalışma kitabının tam adı: ” & ThisWorkbook.FullName
End Sub
Dikkat Edilmesi Gereken Önemli Noktalar
- VBA Hata Ayıklama Yazdırma ifadeleri, öncelikle hata ayıklama işlemi sırasında kodunuzun yürütülmesi hakkında bilgi sağlamak için kullanılır. Hata ayıklama tamamlandıktan sonra bu ifadelerin kaldırılması veya devre dışı bırakılması, gereksiz çıktı veya performans etkisinden kaçınmak için önerilir.
- Hemen Açılan Pencereyi temizlemek için Hemen Açılan Pencereyi kapatıp yeniden açabilir veya CTRL + A tuşlarına basıp ardından DELETE tuşuna basabilirsiniz.
- VBA Hata Ayıklama Yazdırma ifadeleri, hata ayıklama amacıyla görüntülemek istediğiniz değişkenleri, ifadeleri, fonksiyon sonuçlarını veya herhangi bir metni çıktı olarak almak için kullanılabilir.
- Debug.Print'i karmaşık ifadelerle veya birleştirilmiş dizelerle kullanırken, açıklık sağlamak ve doğru değerlendirmeyi sağlamak için bunları parantez içine almak yararlıdır.
- If…Then ifadesini kullanarak VBA Debug Print ifadeleriyle koşullu mantığı kullanmak mümkündür. Belirli çıktıların belirli koşullara göre ne zaman görüntüleneceğini kontrol etmenizi sağlar.
VBA Hata Ayıklama Yazdırma çıktısını Hemen Penceresinde temizlemek için, ya kapatıp yeniden açabilirsiniz ya da CTRL + A tuşlarına basarak tüm metni seçebilir ve ardından DELETE tuşuna basarak kaldırabilirsiniz.
Debug.Print çıktısını VBA'da görüntülemek için Immediate Window'u açmanız gerekir. Visual Basic Editor'da CTRL + G'ye basın veya “View” -> “Immediate Window”a gidin. Immediate Window, kodunuzdaki VBA Debug Print ifadeleri tarafından oluşturulan çıktıyı görüntüler.
1. Immediate Window'un açık olduğundan emin olun. Açmak için CTRL + G tuşlarına basın veya “View” – “Immediate Window”a gidin.
2. VBA Debug Print ifadelerinin yorum satırına alınmadığını kontrol edin.
3. VBA Debug Print ifadelerini içeren kodun yürütüldüğünü doğrulayın. VBA Debug Print ifadelerinin yürütülmesini engelleyebilecek koşullu ifadeler veya kod dalları olup olmadığını kontrol edin.
4. VBA Debug Print Time ifadesi, geçerli zaman, saat, dakika veya saniye gibi zamanla ilgili değerleri görüntüleyebilir.
VBA Debug Print ve Print arasındaki temel fark çıktı hedefidir.
VBA Debug Print, Visual Basic Editor'daki Immediate Window'a bilgi çıktısı almak için kullanılır. Esas olarak hata ayıklama amaçları için kullanılır ve geliştiricilerin kod yürütme sırasında ifadelerin çıktısını görüntülemesine olanak tanır.
Öte yandan Print , VBA'da içeriği doğrudan bir yazıcıya yazdırmak için kullanılır. Belirtilen çıktıyı ekranda görüntülemeden veya etkileşimli hata ayıklama yetenekleri sağlamadan varsayılan yazıcıya gönderir.
