Makro

On Error Deyimi | Hata Denetimi Makro VBA


Microsoft Excel içerisinde kullanılan Visual Basic Editor penceresinde, çoğu zaman başvurduğumuz On Error deyimini biraz inceleyelim. Program yazılımcıları keza aynı şekilde bu algoritmaya başvurmaktadır. Peki bizim için Excel kullanımı içerisinde nasıl etkileşime sahip, ne gibi durumlarda kullanılabilir, parametreleri ve diğer kullanılabilir nesneleri nelerdir, bu deyim nasıl başlar ve nasıl sonlandırılır? Tüm detaylarıyla paylaşmak istiyorum. Dilerseniz ilk olarak On Error deyimini biraz detaylandıralım sonrasında ise alt başlıklar halinde nerelerde kullanılır inceleyelim.

  • On Error Nedir ?

Visual Basic’te hazırlanan kodların başında veya sonunda sıkça rastlanan bu kelime aslında Excel’in makro kodlarını çalıştırdıktan sonra herhangi bir hata ile karşılaşması durumunda, On Error komutu anında hata işleme yordamını etkinleştiriyor . Nedir bu yordam kelimesi, program mı yazıyoruz sanki diye düşünmeyin arkadaşlar.. bu bir yöntem, kelime anlamıyla kılavuz sayılır. Kısacası On Error komutu Hata Denetimi demektir.

Yazılan kodları çalıştırdığınızda hata işleme yordamını etkinleştirir ve herhangi bir hata ile karşılaşması durumunda programın veya makro kodlarının yürütülmesini devam ettirmek için ne yapacağıyla ilgili parametre eklenmesini ister. Parametrenin eklenmesi için GoTo bağlamı kullanılabilir.

  • On Error GoTo ?

Yukarıda bahsettiğim gibi, kodlar çalıştıktan sonra hata tespit sistemi çalışır aynı zamanda bu hata ile karşılaştığı zaman ne yapacağını belirleyen parametreleri bulunmaktadır. İlgili parametreleri birazdan açıklayacağım fakat başlığı atmadan önce Excel içerisinde parametrelerin nasıl bağlanacağını anlatarak geçelim. Makro kullanımlarında Hata tespit sisteminin çalışmasını sağlayan On Error komutuyla birlikte, hatadan sonra ne yapılacağını belirleyen parametreyi birleştirmek için arada GoTo bağlantısı kullanılır. Yani şu şekilde; On Error GoTo (Parametre). Türkçe açıklaması Hatayı bul Git şu Parametreyi çalıştır. Şimdi gelelim adım adım algoritmayı oluşturan bu bağlamın ne işe yaradığına…

Yukarıdaki deyim Excel makrolarında oluşacak hatalara karşılık olarak tepki veya çözüm vermesi için kullanılır. Verilen tepki ardından bağlanacak parametre ile belirlenir.

  • On Error GoTo [Parametreler]

Resume Next : Excel içerisinde makro hata tespit konumunda en çok kullanılan parametredir. Çünkü adından anlaşılacağı gibi, Resume Next parametresi, önce On Error hata tespitinin çalışmasını bekler sonra hataya aldırış etme devam et der. Devam et derken Microsoft Excel Visual Basic Editor içerisindeki belirlenen kodların yürümesi için sıradaki makro koduna geçer veya makroyu sonlandırır. Kullanım şekli; ‘ On Error Resume Next ‘

Makalenin sonunda makronun nasıl sonlandırılacağını da ayrıca belirteceğim.

GoTo LabelName: Excel içerisinde makroyu çalıştırdıktan sonra hata oluşursa, hata düzeltme yordamınının “Labelname” ile başlayan satırını etkinleştirir. Kullanım şekli ‘ On Error GoTo ErrorHandler ‘

GoTo 0: Sıfır parametresinin diğer parametrelerden bir farkı var. Parametrenin etkisi, Makro çalıştıktan sonra hata algılanırsa tepki olarak mevcut yordamda hata işleyicisini devre dışı bırakır. Kullanım şekli ‘ On Error GoTo 0 ‘

GoTo -1: Aynı parametrenin bir de -1 olanı var. On Error GoTo -1 komutu çalıştığında kendisini sıfırlar ve geçerli yordam içerisindeki Özel durumu devre dışı bırakır.

On Error deyimi ile hataları tespit etmeyle birlikte ne yapılacağına ilişkin parametreleri inceledik.

Aynı zamanda tespit edilen hataların bir kısmını sayfaya yansıtmakta mümkündür. 

  • Hata Nesneleri;

Err.Number: Hatanın numarasını verir, gelen her hatanın belirli kodları vardır.

Err.Line: Hatanın satırını verir.

Err.Source: Hatanın temel kaynağını belirtir.

Err.Description: Hatanın detayını açıklamasını verir.

Err.Clear: Hatayı temizler.

Bu nesneleri bir kaç örnekle kod içerisinde kullanalım;


....Excel Makro kodları.....
On Error Resume Next
if Err.number>0 then
Response.Write "Ops Hata Var.HataNo="Err.Number""
end if
.... Excel Makro kodları.....

Excel çalışma sayfanızda bulunan makro kodları içerisine yukarıdaki kodları ekleyerek, olası bir hata koduyla karşılaştığınızda ilgili hata numarasını alabilirsiniz. Sonuç sizi çözüme götürmede yardımcı olabilir.

On Error Resume Next,

On Error GoTo 0

On Error GoTo -1

On Error GoTo Labelname

ve son olarak Excel'de Hata Nesnelerini tüm detaylarıyla incelemiş olduk.

Bir hata işleyicisi etkinken, herhangi bir hata oluşursa bu hata oluşumunu arasında belirlenen Exit Sub, Exit Function, veya Exit Property deyimi kullanılabilir. İsminden anlaşılacağı üzere çıkış komutları sayesinde geçerli yordamın hata işleyicisi hata işleyemez ve sonlandırır.

[ On Error Resume Next Kullanımı , On Error Deyimi Visual Basic , Hata Denetimi , Hata Yakalama , On Error GoTo , VBA On Error Resume Next , Hata mesajı alınca yapılması gereken işlem ]

Sorularınız için aşağıdaki yorum sayfasını kullanabilirsiniz. Faydalı olması dileklerimle...

 


This Post Has 3 Comments

  1. Erhan Yavuz Reply

    Gayet bilgilendirici bir yazı olmuş. Yeni bir şey daha öğrendik, teşekkürler.

  2. Mr.Gold Reply

    güzel anlatım olmuş, elinize sağlık.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir