Excel'deki VBA Do döngüsü, istenen çıktıyı elde edene veya koşul Doğru olana kadar görevleri birden fazla kez tekrarlamamızı sağlar. VBA Do döngüsünü kullanmanın en iyi yanı, her görev için kodu yeniden yazmak zorunda olmamamızdır. Bunun yerine, döngü her görevi/değeri adım adım analiz eder. Excel VBA Do döngüsü, koşul Doğru olana kadar çalışır.
VBA Do döngüsünü anlamak için bir örnek kullanalım. Diyelim ki A1'den A5'e kadar olan hücreleri 5 ile çarpmak istiyoruz. Burada Do While döngüsünün nasıl çalıştığını göstereceğiz. İlk olarak Excel'i açın ve A1'den A5'e kadar olan hücreleri rastgele yazın. Ardından, aşağıdaki VBA kodunu VBA düzenleyicisindeki bir modülde yazın ve çalıştırın. Sonuç, çarpılan sayılarla B1'den B5'e kadar olan hücreleri gösterir. Döngü, boş bir hücreye rastlanana kadar yürütülür. Hücrelerden birini (A3) silersek, Do …While döngüsü döngüden çıkar ve B2'ye kadar olan sonucu gösterir.

Kod:
Sub VBA_Do_While_Ex()
Dim X As Integer
X = 1
Do While Cells(X, 1).Value <> “”
Cells(X, 2).Value = Cells(X, 1).Value * 5
X = X + 1
Loop
End Sub
ÖNEMLİ NOKTALAR
- VBA Do döngüsü, bir ifadenin veya talimat kümesinin verilen bir koşula göre tekrar tekrar yürütüldüğü bir koddur.
- VBA Do döngüsünde kullanılan koşul Boolean tipinde bir sonuç verir.
- VBA Do döngüsü, koşul doğru olana kadar veya koşul doğru olduğu sürece kodu birden fazla kez çalıştırmamıza olanak tanır.
- VBA Do…While döngüsü koşul True olana kadar defalarca çalışır ve VBA Do…Until döngüsü koşul False olana kadar defalarca çalışır.
- VBA Do Exit ifadesi, koşul değişmeden önce döngüden çıkmak için kullanılır.
- Eğer…O zaman…Else, Exit Do ile birlikte bir koşul ifadesi olarak kullanılabilir.
Do [{ While | Until } condition ] [ statements ] [ Exit Do ] [ statements ] Loop
- Koşul: True veya False'un sayısal veya dize ifadesi olabilir. Koşul Null ise False olarak değerlendirilir.
- İfadeler: Bunlar, While veya Until döngüsü kullanıldığında koşul True olana kadar tekrarlanan ifadelerdir.
VBA Döngülerinin Türleri
VBA Do döngüleri iki tiptir: 1) Do-While döngüsü ve 2) Do-Until döngüsü.
1 – VBA Do…While döngüsü – Do…While döngüsü, bir ifadeyi koşul doğru olana kadar birden fazla kez tekrarlamak istediğimizde kullanılır. Bu durumda, koşul ya döngünün başında ya da döngü en az bir kez yürütüldükten sonra sonunda kontrol edilir.
2 – VBA Do…Until döngüsü – Do…Until döngüsü, koşul yanlış olana kadar bir ifadeyi birden fazla kez tekrarlamak istediğimizde kullanılır. Do…While döngüsü gibi, koşul döngünün başında veya sonunda kontrol edilecektir.
VBA Do Döngüsü nasıl kullanılır?
Excel VBA'da Do…Until döngüsünün bir örneğini ele alalım. Burada, bildiğimiz gibi, döngü koşul yanlış olana kadar yürütülecektir. O halde, hücreleri verilen bir değerle doldurma gibi basit bir görevi yürütmek için VBA Do…Until'i kullanmanın her adımını anlayalım.
Adım 1: Aşağıda gösterildiği gibi bir VBA düzenleyicide bir modül açın:

Adım 2 : Alt prosedürü kullanarak VBA kodunu yazmaya başlayın ve sayısal bir değer girmek için bir VBA değişken türünü Tamsayı olarak tanımlayın.

Adım 3 : X değişkenine 1 değerini atayın. Bu, değerin ilk hücreden yazdırılacağını önerir.

Adım 4 : Şimdi Do…Until döngüsünü ekleyin ve koşulunu yazın. Bunun için hücreyi doldurmak istediğimiz değeri until olarak belirtin. Örneğin, hücre 5 diyelim. Bu yüzden X>5 yazarız.

Adım 5: Aşağıda gösterildiği gibi doldurmak istediğimiz değeri atamak için ifadeyi yazın:

Adım 6 : Döngü yinelemesinin gerçekleştirilebilmesi için X değişkenini bir artırın ve döngüyü kapatın.

Adım 7 : Kodu F5'i kullanarak çalıştırın, sonucu aşağıda gösterildiği gibi göreceksiniz:

Örnekler
Do… döngüsünü kullandığımız bazı senaryolara ve kontrolün nasıl çalıştığına bakalım .
Örnek 1 – Döngünün sonundaki koşul
Bu örnekte, koşul sona yerleştirildiğinde Do…while döngüsünü kullanacağız. Döngü, koşul yanlış olsa bile en az bir kez yürütülür.
Adım 1 : Alt prosedürü yazın ve bir değişkeni Tamsayı veri türü olarak tanımlayın.

Adım 2 : Değişkene X=4 değerini atayın. Bu değerin dördüncü satırdan itibaren yazdırılacağı anlamına gelir.

Adım 3 : A4 hücresine görmek istediğimiz değeri aşağıda gösterildiği gibi atayın:

Adım 4 : Döngü yinelemesi için X'i bir artırın, X=X+1. Bu, satırın bir artırılacağı ve 5. hücrenin atanan değerle doldurulacağı anlamına gelir .

Adım 5 : Şimdi. Son olarak, Do…While döngüsünü ekleyin ve gerekli koşulu yazın. Burada X < 3 veriyoruz.

Adım 6 : Kodu çalıştırın. Değer yalnızca 5. hücreye bir kez yazılır ve koddan çıkar.

Açıklama : Do…While döngüsü en son kullanıldığından koşul yanlış olsa bile döngü bir kez yürütülür.
Adım 7: Döngüyü anlamak için başka bir koşul kullanalım. Eğer X<10 ise, döngü X değeri 10 olana kadar A4-A9'dan yürütülecektir.


Kod:
Sub DoWhile_Ex()
Dim X As Integer
X = 4
Do
Cells(X, 1).Value = 1999
X = X + 1
Loop While X < 10
End Sub
Örnek 2 – Do….While Döngüsü Kullanılarak Toplama
Bu örnekte Do…While döngüsünü kullanarak iki sütundaki her satırın toplamını hesaplayacağız.
Adım 1: Değerleri aşağıda gösterildiği gibi Excel hücrelerine yazın.

Adım 2: Alt prosedürü VBA editöründe yazın ve X değişkenini bir tamsayı olarak tanımlayın.

Adım 3 : X =1 değerini atayın ve aşağıda gösterildiği gibi bir koşulla Do…While ifadesini kullanın:
X = 1
Hücreler(X, 1).Değer <> "" iken yapın
Yukarıdaki satırda, döngü her satırı dolaşırken ilk sütunda boş hücre kalmayana kadar döngüyü yürütüyoruz.

Adım 4 : İki sütunun satırlarındaki hücrelerin toplamı için koşulu sağlayın. Burada, (X,1) A sütunundaki hücreleri, (X,2) ise B sütunundaki hücreleri temsil eder.
Kod:
Sub Toplam_Döngü_Yap()
Dim X As Integer
X = 1
Do While Cells(X, 1).Value <> “”
Cells(X, 3).Value = Cells(X, 1).Value + Cells(X, 2).Value
X = X + 1
Loop
End Sub

Adım 5 : Sonucu görmek için kodu çalıştırın, resimde gösterildiği gibi A ve B sütunlarındaki değerlerin toplamını C sütunundaki karşılık gelen hücrede görebilirsiniz:

Bu döngü, kod A sütununda boş bir hücreyle karşılaşana kadar yürütülür.
Örnek 3 – Do…While Döngüsünde Çıkış İfadesi
VBA Exit ifadesi, koşul hala geçerli olsa bile bir döngüden çıkmak için kullanılır. Verilen koşulu analiz eden ve döngüden çıkan If..Then..Else ifadesini kullanarak sonsuz bir döngüden çıkmak için kullanılır.
Bunu daha iyi anlamak için bir örnek görelim. Burada Excel'de 1'den 10'a kadar olan sayıların karelerini yazdırmak için Do…While kullanacağız . Daha sonra, verilen koşula göre döngüden çıkmak için Exit ifadesini kullanacağız.
Adım 1 : Alt prosedürden başlayarak kodu VBA editöründe yazın ve değişkeni Integer olarak tanımlayın.

Adım 2 : X değişkenine bir değer atayın ve X<=10 olduğunda kodu çalıştırmak için Do…While döngüsünü ekleyin. Bu, kodun on kez çalıştırılması gerektiği anlamına gelir.

Adım 3 : X>6 koşulu için If ifadesini kullanın. Ardından, 6. yinelemeden sonra döngüden çıkmak için Exit Do'yu kullanın .

Adım 4 : Aşağıda gösterildiği gibi bir hücredeki sayıların karesini hesaplayan kodu yazın:

Adım 5 : Kodu çalıştırın ve aşağıdaki resimde gösterildiği gibi 62'ye kadar sonucu görün. Burada, X değeri 6'yı aştığında kontrol döngüden çıkar.

Kod:
Sub Do_Exit_Ex()
Dim X As Integer
X = 1
Do While X <= 10 If X > 6 Then Exit Do
Cells(X, 1).Value = X * X
X = X + 1
Loop
End Sub
Dikkat Edilmesi Gereken Önemli Noktalar
- VBA Do döngüsü bize bir dizi değeri tek tek analiz etme olanağı sağlar.
- VBA Do döngüsü iki tiptir, Do…While döngüsü ve Do…Tall döngüsü.
- Her iki Do döngüsü türünde de koşul başlangıçta veya sonda kontrol edilebilir.
- VBA Do döngüsü genellikle her hücrede, çalışma sayfasında ve çalışma kitabında döngü oluşturmak için kullanılır.
- VBA Do döngü sayacı hücre sayısını sayar. Bunlar VBA'da bir sayaç değişkeni bildirmek, bir başlangıç değeri depolamak ve sayaç değişkenini bir tam sayı (örneğin 1) kadar artırmak için kullanılır.
