Excel eğitimlerimizde bu yazımda sizlere VBA’ da kullanacağımız döngüleri anlatacağım. Döngüler programcılığın bel kemiğidir. Bir işlemi onlarca kez aynı şekilde tekrarlamak yerine döngü yapısıyla bir defada çözebiliriz. Döngüler kendi içinde 2’ ye ayrılır. Bunlar yineleme döngüleri ve mantıksal döngülerdir.

1.Yineleme Döngüleri

-For Next  döngüsü sayılar ile hareket eder ve döngünün dönüş sayısı için rakamlara ihtiyaç duyar. Başlangıç ve bitiş değerlerini girmeniz gerekmektedir. Artış sayısını girmezseniz 1 olarak kabul edilir. Yazımı şu şekildedir:

            For Sayac = ‘Başlangıç Değeri’  to ‘Bitiş Değeri’ [Artış Değeri]

                        ‘Komutlar’

                  Next Sayaç

 

Burada Next sayaç değerini başlangıçtan bitişe kadar sürekli takip eder. Bitiş değerine ulaşan sayaç için, Next komutu ile bir alt satıra inilmesi sağlanır.

Basit bir örnek verelim.

  1. satırda şu komutu da kullanabilirsiniz. Cells(byt, 1) = byt

-For Each döngüsü nesnelerle hareket eder, rakamlara ihtiyaç duymaz nesneler topluluğuna aynı eylemi uygulamak için kullanılır. Örnek vererek anlatırsam daha açıklayıcı olur.

Bu örnekte hücre hangi satırdaysa onu o hücreye yazdırır. Mesela “A1”= “A1” kaçıncı satır?(1. Satır) gibi.

2.Mantıksal Döngüler

               -Do Whıle – Loop döngüsünde while iken anlamına gelir. Döngü gerçekleşmeden önce koşul denenir, doğru ise döngü başlar. Loop ise döngü kontrolünü yapar. Koşul sağlandığı sürece döngü devam eder, ancak koşul sağlanmasa da mutlaka bir kez çalışır.

-GoTo Deyimi bir işlemin sonucunda gitmek istediğimiz bir komut satırına gitmemizi sağlar.

  1. satırda eğer hata varsa hata yazan satıra git denmekte. 5. Satırda A2 hücresinin değeri A1 hücresinin 2 katı yap söylenmekte. 7. Satırda sayaç 1’e eşitse Sub prosedüründen çık denilmekte. Bunu yaparken de dönünün sürekli çalışmasına imkan verdik. 9.satırda eğer hata var ise A1’e 100 değerini yaz diyoruz. Sonrasında don deyimine gidip komutları tekrarlıyoruz.

Her türlü görüş ve sorularınız için ademirkaya@industryolog.com adresine mail atabilirsiniz. Faydalı olması dileğiyle bir sonraki yazımda görüşmek üzere esen kalın.