VBA Döngüleri - İlk 4 Döngü Türü Listesi (Örneklerle)

İçindekiler

Excel VBA Döngüleri

Döngüler , belirli bir ihtiyaç veya belirli bir koda ihtiyaç duyduğumuzda belirli bir koda ihtiyaç duyduğumuzda, bu kodlar için döngüler kullandığımız tüm programlama dillerinde yaygın olarak kullanılır, artık VBA'da Do gibi birçok döngü türü vardır. while, Do until, For Loop ve For each loop, bu döngüler, koşul karşılanana kadar kodun yürütülmesine yardımcı olur.

Bu açıklamayı en başında kendim yapmama izin verin. "VBA'da uzmanlaşmak istiyorsanız, VBA makrolarında döngü kavramında ustalaşmanız gerekir."

Döngü, hücre veya nesnelerin toplanması için aynı görevi tekrarlamak için bir dizi hücreden geçmekten başka bir şey değildir. Görevi döngüleri kullanarak ayrı bir kod satırında yapmak yerine, kodun uzunluğunu mümkün olan en az kısaltabiliriz.

İlk 4 VBA Döngüsü Türü Listesi

  1. Sonraki Döngü için
  2. Her Döngü İçin
  3. Döngü Halinde Yap
  4. Döngüye Kadar Yap

Bu türlerin her birini ayrıntılı olarak görelim.

Tip # 1 - Sonraki Döngü İçin

For Next döngü, hücre aralığında döngü yapmamıza ve döngüde belirtilen her hücre için aynı görevi gerçekleştirmemize olanak tanır. Burada başlangıç ​​numarasını ve bitiş numarasını söylememiz gerekiyor.

Misal

Örneğin, 1'den 10'a kadar seri numaraları eklemek istiyorsanız, seri numaralarını girmenin geleneksel yolu aşağıdadır.

Alt Seri Numarası ()

Aralık ("A1"). Değer = 1
Aralık ("A2"). Değer = 2
Aralık ("A3"). Değer = 3
Aralık ("A4"). Değer = 4
Aralık ("A5"). Değer = 5
Aralık ("A6"). Değer = 6
Aralık ("A7"). Değer = 7
Aralık ("A8"). Değer = 8
Aralık ("A9"). Değer = 9
Aralık ("A10"). Değer = 10

Sub

İyi görünüyor, değil mi? Ancak buradaki sorun, bu görevi yerine getirmemiz gereken sadece 10 kez. Ama ya 100 ya da 1000 sayı eklemek istiyorsanız, 100 ya da 1000 satır kodu yazabileceğinizi hayal edin. Bu imkansız ve For Next döngüsünün güzelliği işte tam da bu noktada.

Adım 1: Makroyu açın ve i değişkenini Tamsayı olarak bildirin.

Sub Insert_Serial_Number ()

Tamsayı Olarak Dim i

Sub

Adım 2: Şimdi For Loop'u açın . Burada i değişkenini kullanarak döngünün başlangıcından ve sonundan bahsedin .

Adım 3: Şimdi gerçekleştirmek istediğiniz kodu yazın. A1'den A10'a hücrelere 1'den 10'a kadar sayılar eklememiz gerekiyor. Range yöntemini uygulamak yerine Cells yöntemini uygulayın.

İlk başta i değişkenini bir tamsayı olarak tanımlamış olduğumuz için satır numarasını soruyor . Onun değeri 1. Yani söz olduğunu i sütun numarası gibi sıra sayısı ve 1 gibi.

Şimdi geçerli hücre değerinin değeri yerine bir söz numarayı söz arasında, biri olmalıdır i değeri olarak. Her zaman döngüsü çalıştığı için i değeri 1 artacaktır.

Şimdi tek tek satıra geçmek için F8 tuşuna basın. For loop'a ulaşana kadar F8'e basın.

Bu sarı renk, seçilen kod satırının çalışmak üzere olduğunun göstergesidir. I üzerine bir imleç yerleştirin ve değeri sıfır olarak gösterecektir.

Şimdi bir kez daha F8 tuşuna basın ve i'nin üzerine bir imleç yerleştirin & şimdi değer 1'dir.

Yani her yerde i'nin değerleri şimdi 1'e eşittir. " Hücreler (I, 1) .değer = I" , Hücreler (1, 1). Değer = 1 anlamına gelir .

F8 tuşuna basın ve A1 hücresindeki değeri görün. A1 hücresinde 1 görmelisiniz.

Şimdi, F8 tuşuna basarsanız, bir kez daha For döngüsüne geri dönecektir çünkü i değişkeninin bitiş sınırı 10'dur. Bu sefer I değeri 2 olacaktır.

Sonraki döngü için 10 kez çalışacak ve 1'den 10'a kadar seri numaraları girilecektir.

Tip # 2 - Her Döngü İçin

VBA'daki her döngü için, bir nesne koleksiyonu arasında döngü oluşturmak için kullanılır. Bir sonraki döngü için hücreler arasında döngü oluşturur ve görevi gerçekleştirir ve Her Bir döngü için Çalışma Sayfaları, Grafikler, Çalışma Kitapları, Şekiller gibi nesneler arasında döngü oluşturur.

Bu döngüyü kullanarak tüm çalışma sayfalarını gözden geçirebilir ve bazı görevleri gerçekleştirebiliriz. Örneğin, çalışma sayfalarını gizlemek ve göstermek için tüm çalışma sayfalarında döngü yapabilirsiniz.

Örnek 1

Üzerinde çalıştığınız sayfa dışındaki tüm çalışma sayfalarını gizlemek istiyorsanız, bunu nasıl yapacaksınız? Çalışma kitabında 20 sayfanız varsa, bu zaman alan bir işlemdir. Ancak FOR EACH döngüsü ile bu görevi gerçekleştirebiliriz.

5 sayfam var ve aşağıdaki kodun benim için görevi yapacağı "Ana" sayfa dışında tüm sayfaları gizlemek istiyorum.

Alt To_Hide_All_Sheet ()

Çalışma Sayfası Olarak Dim Ws

ActiveWorkbook.Worksheets'teki Her Çalışma İçin

Ws.Name "Main" ise
Ws.Visible = xlSheetVeryHidden
End If

Sonraki W

Sub

Örnek 2

Tüm gizli sayfaları göstermek istiyorsanız, aşağıdaki kod sizin için işi yapacaktır.

Alt To_UnHide_Specific_Sheet ()

Çalışma Sayfası Olarak Dim Ws

ActiveWorkbook.Worksheets'teki Her Çalışma İçin

Ws.Visible = xlSheetVisible

Sonraki W

Sub

Tip # 3 - Döngü Sırasında Yapın

Do While döngüsü verilen koşul DOĞRU iken görevi gerçekleştirir ve koşul YANLIŞ olduğunda döngüyü durdurur. Diğer iki döngünün aksine Do While, koşulu başlangıcında değil döngünün sonunda test eder.

Size Do While döngüsü ile seri numaraları ekleme örneğini göstereceğim.

Alt Do_While_Example ()

Tamsayı Olarak Dim i

i = 1
i <11
Hücrede Yapın (i, 1). Değer = i
i = i + 1
Döngü

Sub

İse yukarıdaki döngü çalışacaktır i az 11 ve seri numaraları ekleme tutar. 11'den büyük olduğum an , döngü duracak.

Tip # 4 - Döngüye Kadar Yapın

Do While döngüsünün aksine, Do Until döngüsü koşul TRUE iken çalışmaz; bunun yerine, koşul YANLIŞ olana kadar döngü yapar. Örneğin, aşağıdaki koda bakın.

Alt Do_Until_Example ()

Tamsayı Olarak Dim i

i = 1
i = 11
Hücreye Kadar Yapın (i, 1). Değer = i
i = i + 1
Döngü

Sub

Do While & Do Until döngüsü arasındaki tek fark belirttiğimiz operatördür. Do'da, i (<) 'den küçükken, 11' den küçükken, ancak do 'dan söz ederken, döngüyü i (=)' ye eşit olana kadar çalıştırmaktan bahsettik .

Hatırlanacak şeyler

  • Daha gelişmiş bir Excel VBA döngü örneği var, ancak her birini ayrı bir makalede ayrıntılı olarak ele alacağız.
  • Her döngü, nesne değişkenleri içindir.
  • Do While & Do Until aynı görünse de durumdan bahsetmek çok önemlidir.
  • Döngüler çok önemli kavramlardır.

Ilginç makaleler...