EXCEL VBA LOOPS [DÖNGÜLER]

 

VBA Döngüleri, birden fazla hücre, çalışma sayfası, çalışma kitabı vb. üzerinde aynı eylem kümesini gerçekleştirmemize olanak tanır. Örneğin, ilk 10 satıra 1'den 10'a kadar bir seri numarası eklemek istiyorsak, 10 satır kod yazmamıza gerek kalmaz. Bunun yerine, eylemleri on farklı hücre üzerinde gerçekleştirmek için döngüleri kullanabiliriz.


Aşağıda Excel'de VBA döngülerinin kullanımına ilişkin bazı pratik örnekler verilmiştir.

  • Bir hücre aralığında döngü yapın ve aynı eylem kümesini gerçekleştirin. Örneğin, biçimlendirme uygulayın veya metin ekleyin.
  • Birden fazla çalışma sayfası arasında dolaşın ve bazı eylemleri veya görevleri gerçekleştirin. Örneğin, sayfaları gizleyin veya gösterin.
  • Birden fazla çalışma kitabı arasında dolaşın ve bir şeyler yapın. Örneğin, geçerli çalışma kitabı hariç tüm açık çalışma kitaplarını kaydedin ve kapatın.
  • Tüm çizelgeleri dolaşın ve bir şeyler yapın. Örneğin, yazı tipini veya stilini değiştirin.
  • Diziler arasında döngü.
  • Bir hücredeki tüm karakterler arasında dolaşın ve metnin belirli bir bölümünü çıkarın.

Bunlar VBA döngülerini kullanarak ve VBA ile verimli bir şekilde çalışarak yapılabilecek tüm aktivitelerdir


ÖNEMLİ NOKTALAR

  • VBA Döngüleri, döngüde verilen sayıya göre aynı görevi birden çok kez gerçekleştirmemize yardımcı olur.
  • Excel'de dört tür VBA döngüsü vardır ve bunlar FOR NEXT VBA LOOP, FOR EACH VBA LOOP, DO WHILE VBA LOOP ve DO UNTIL VBA LOOP'tur.
  • For Next VBA LOOP hücreler arasında döngü oluşturmak için kullanılır.
  • Benzer şekilde, For Each VBA Döngüsü nesneler arasında döngü oluşturmak için kullanılır.
  • Do While ve Until benzer şekilde çalışır. Ancak, verilen mantık tam tersi olmalıdır.

Şimdi VBA döngülerinin türlerine bakalım.

Excel'de 4 tip VBA döngüsü mevcuttur:

  1. For Next Loop
  2. For Each Loop
  3. Do While
  4. Do Until

1 – For Next Loop VBA Döngüsü İçin

For…Next döngüsü, kodda belirtilen sayıda kez aynı kodu tekrarlamak için kullanılır. Burada, döngünün başlangıç ​​ve bitiş konumunu belirtmeliyiz. For…Next LOOP, hücreler arasında döngü yapmak ve aynı eylem kümesini gerçekleştirmek için kullanılır.

Örneğin, A1 ila A10 hücrelerine 1'den 10'a kadar seri numaraları girmeliyiz. Döngünün başlangıç ​​konumu 1 ve bitiş konumu 10'dur. Burada, döngü on kez çalışacak ve aynı eylem kümesini 10 hücrenin hepsinde tekrarlayacaktır.

Sözdizimi

Aşağıda For…Next LOOP’un sözdizimi yer almaktadır.

FOR NEXT LOOP'un sözdizimi

For…Next LOOP'ta, değişkeni atamalı ve kod bloğunun kaç kez çalıştırılması gerektiği konusunda ısrar etmek için başlangıç ​​ve bitiş numaraları vermeliyiz. Kod, son numaraya ulaşana kadar çalıştırılmaya devam edecektir.

Örnek 1 – Seri Numaralarını Girin

Örneğin, A1'den A10'a kadar olan hücrelere 1'den 10'a kadar seri numaraları girmemiz gerektiğini varsayalım. Bunun için aşağıdaki görselde gösterildiği gibi kodu yazabiliriz.

Vba Döngüsü - seri numarası örneği

Yukarıdaki kod A1 hücresine 1 sayısını, A2 hücresine 2 sayısını vb. ekleyecektir.

Vba Döngüsü - seri numarası örneği - çıktı

Ancak buradaki sorun, her hücre için farklı satırlarda kod yazmış olmamızdır. Bunun için toplamda 10 satır kod yazılmıştır. Bu uzun kodlardan kaçınmak için FOR NEXT LOOP kullanabiliriz.

Adım 1: Aşağıdaki görselde gösterildiği gibi Alt prosedür adını girin.

Vba Döngüsü - seri numarası örneği - adım 1

Adım 2: For…Next LOOP'u başlatmak için bir değişken tanımlayın ve veri türünü tam sayı olarak atayın.

Vba Döngüsü - seri numarası örneği - adım 2

Adım 3: Değişkenle For…Next LOOP’u açın.

Vba Döngüsü - seri numarası örneği - adım 3

Adım 4: Döngü başladıktan sonra, döngünün başlangıç ​​ve bitiş değerlerini vermeliyiz. Bu örnekte, başlangıç ​​sayımız 1 ve bitiş sayımız 10'dur.

Vba Döngüsü - seri numarası örneği - adım 4

Adım 5: Yürütmeyi tekrarlayacak bloğu yazmadan önce, aşağıdaki kutuda gösterildiği gibi FOR LOOP'un değişken değerini NEXT [Değişken adı] biçimindeki kelimeyi kullanarak artırmalıyız.

Vba Döngüsü - seri numarası örneği - adım 5

Adım 6: For…Next LOOP'un içinde, tekrarlanacak kodu yazacağız. Hücrelere CELLS özelliğini kullanarak başvuruyoruz.

Vba Döngüsü - seri numarası örneği - adım 6

Adım 7: CELLS özelliği için satır numarasını sağlamalıyız. Satır numarasını sabit olarak sağlamak yerine değişken adını sağlayabiliriz.

Vba Döngüsü - seri numarası örneği - adım 7

Adım 8: Daha sonra sütun indeks numarasını 1 olarak girin.

Vba Döngüsü - seri numarası örneği - adım 8

Adım 9: VALUE özelliğini seçin ve değeri k değişkenine ayarlayın.

Vba Döngüsü - seri numarası örneği - adım 9

Kodlama kısmı tamamlandı. Şimdi F8 tuşuna basarak kodu satır satır çalıştıracağız.

Adım 10: İmleci makronun içine getirin ve makroyu başlatmak için F8 kısayol tuşuna basın.

Vba Döngüsü - seri numarası örneği - adım 10

Adım 11: Değeri görmek için imleci k değişkeninin üzerine getirin.

Vba Döngüsü - seri numarası örneği - adım 11

Adım 12: Şu an itibariyle k değeri sıfırdır. F8 tuşuna bir kez daha basın ve k değişkeninin değerini görün.

Vba Döngüsü - seri numarası örneği - adım 12

k değeri 1'dir, yani döngü ilk defa çalışmaktadır ve döngünün başlangıç ​​noktası 1'dir.

Bu nedenle k değeri şimdilik bu kod boyunca 1'dir.

Adım 13: CELLS özelliğinde , hücreye CELLS(1,1) örneğinde olduğu gibi referans veren k değişkenini sağladık, yani hücre A1 ve hücredeki değer k değişkeninin değerine, yani 1'e eşit olacaktır.

F8 tuşuna bir kez daha basıyoruz ve A1 hücresinde 1 değerini alıyoruz.

Vba Döngüsü - seri numarası örneği - adım 13

Adım 14: F8 tuşuna bir kez daha basın , kod içerisine geri dönülecek ve k değişkeninin değeri artık 2 olacak.

Vba Döngüsü - seri numarası örneği - adım 14

K değeri 2'ye eşittir, yani döngü ikinci kez çalışmaktadır ve k neredeyse orada değer 2 olacaktır.

Dolayısıyla CELL(K,1) CELLS(2,1) yani hücre A2 olacaktır.

Adım 15: F8 tuşuna basın , A2 hücresine 2 değeri eklenecektir.

Vba Döngüsü - seri numarası örneği - adım 15

Adım 16: Benzer şekilde döngü 10 kez çalışır ve k değeri 10'a ulaştığında döngüden çıkar.

Kodu tek seferde tamamlamak için F5 tuşuna bastığımızda A1'den A10'a kadar olan hücrelerde 1'den 10'a kadar olan seri numaralarını görmeliyiz.

Vba Döngüsü - seri numarası örneği - adım 16

Örnek #2 – Alternatif Hücreleri Biçimlendir

Her alternatif satır için bir miktar renk biçimlendirmesi uygulamamız gerektiğini varsayarak . Renk biçimlendirmesini uygulamak için FOR NEXT LOOP'u kullanabiliriz.

Aşağıdaki kod tüm alternatif hücreleri mavi renkle dolduracaktır.

Vba Döngüsü - Örnek 2 - Alternatif hücreler

Yukarıdaki kodu kopyalayıp Visual Basic Editor'a yapıştırın.

Vba Döngüsü - Örnek 2 - Alternatif hücre kodu

F5 tuşuna basarak kodu çalıştırın . Her çift satır hücresini mavi renkle doldurur.

Vba Döngüsü - Örnek 2 - Alternatif hücreler -çıktı

2 – For Each Döngüsü İçin

For…Each LOOP nesneler arasında döngü oluşturmak için kullanılır. Excel'deki nesneler şunlardır:

  • Açılan tüm çalışma kitapları nesnedir.
  • Tüm çalışma kağıtları nesnedir.
  • Tüm hücreler veya hücre aralıkları nesnedir.
  • Bütün şekiller ve grafikler nesnedir.

Sözdizimi

FOR EACH LOOP'un sözdizimi aşağıdaki gibidir.

FOR her Döngüsünün Sözdizimi
Örnek 1 – Tüm Çalışma Sayfalarını Gizle

Büyük çalışma sayfalarıyla çalışıyorsanız, çalışma sayfalarını gizlemeniz gerekebilir. FOR…EACH LOOP'u kullanarak, tüm kullanılabilir çalışma sayfalarını dolaşabilir ve gizleyebiliriz.

Örneğin, aşağıdaki çalışma kağıtlarına bakın.

Vba Döngüsü - Örnek 1- Sayfaları Gizle

“Sheet1” adlı çalışma sayfası hariç tüm çalışma sayfalarını gizlemeliyiz. Aşağıdaki kod tüm çalışma sayfalarını dolaşacak ve onları gizleyecektir.

Vba Döngüsü - Örnek 1- Sheets kodunu gizle

Bu, “Sheet1” adlı çalışma sayfası haricindeki tüm çalışma sayfalarını gizleyecektir.

Vba Döngüsü - Örnek 1- Sayfaları Gizle - Çıktı
Örnek 2 – Tüm Çalışma Sayfalarını Göster

Çalışma sayfaları gizlendikten sonra, tek bir tıklamayla onları görünür hale getirmemiz gerekebilir. Aşağıdaki kod tüm çalışma sayfalarını görünür hale getirecektir.

Vba Döngüsü - Örnek 2 - Sayfaları göster

Bu, çalışma kitabındaki tüm gizli sayfaları gösterecektir.

3 – Do While VBA Döngüsü

Do…While Döngüsü, uygulanan koşul karşılandığında veya TRUE olduğunda bir döngüyü çalıştırmak için kullanılır. Do While Döngüsü için iki tür sözdizimi mevcuttur.

Sözdizimi #1

Do while döngüsü için sözdizimi 1

Sözdizimi #2

Do while döngüsü için sözdizimi 2

1 sözdiziminde, döngü başlayacak ve koşulun TRUE olup olmadığını test edecektir. Koşul TRUE iken döngü içindeki kodu yürütecektir. FALSE olduğunda, döngüden çıkacaktır.

2 sözdiziminde, döngü başlayacak ve döngü içindeki kodu yürütecek, sonra sonunda koşulu test edecektir. Koşul TRUE ise, yalnızca o zaman döngüye geri dönecektir veya aksi takdirde döngüden çıkacaktır.

Örneğin aşağıdaki koda bakın.

vba döngüsü - Kodu yaparken yap

Yukarıdaki kod 1'den 10'a kadar olan değerleri ekleyecektir.

  • Öncelikle k değişkeninin değerini 1 olarak ayarlamalıyız.
  • Daha sonra şu koşulu uygulamalıyız. k değeri 10'dan küçükken A sütununa seri numaralarını girelim.
  • Daha sonra, döngünün içinde, döngü her çalıştığında k değerini 1 artırıyoruz. k değeri 10'dan küçük olduğu sürece, döngü içindeki kodu çalıştırmaya devam ediyor ve k değeri 10'dan büyük olduğunda, döngüden çıkıyor.

4 – VBA Döngüsüne Kadar Yapın

Do…Until Döngüsü, Do…While Döngüsü'ne benzerdir. Do…Until Döngüsü, koşulu TRUE olana kadar çalışır ve Do…While döngüsü, koşul TRUE olduğu sürece çalışır.

Aynı kodu Do…While örneğinden de alabiliriz.

vba döngüsü - Do until döngüsü kodu

Önceki kodda yaptığımız tek değişiklik While yerine Until kelimesini eklememiz ve koşulu >10 olarak değiştirmemiz oldu.

Bu döngü, değişken k değeri 11'e ulaşana kadar çalışmaya devam edecek ve değerler ekleyecektir. Değişken k değeri >10'a ulaştığında döngüden çıkacaktır.

Dikkat Edilmesi Gereken Önemli Noktalar

  • Hem FOR…NEXT hem de FOR…EACH VBA döngüleri için Next kelimesini döngünün sonuna koymak gerekir .
  • Excel'deki nesneler Hücre, Hücreler, Çalışma Sayfaları, Çalışma Kitapları, Grafikler ve Şekiller'dir.
  • Eğer koşulu Do While ve Do…Until döngüsünün en altına koyarsanız, döngü önce kodu çalıştıracak ve ardından koşulu test edecektir.
  • CELLS, VBA'da bir özelliktir. Hücrenin özelliğinin satır numarası için her zaman bir değişken adı sağlayın.


Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...