İç içe vba i̇le deyimi nasıl kullanılır?
Anahtar noktaları
- Kodu simge durumuna küçültmek için VBA With deyimini kullanın.
- With deyimini kullanırken aynı anda yalnızca bir nesne kullanabilirsiniz.
Beyanname ile VBA nedir
VBA With, bir nesneyi bir kez belirtmek ve ardından onun için birden fazla ifadeyi yürütmek için kullanılan bir ifadedir. Basit bir ifadeyle “WITH” ifadesini kullanarak bir nesneyi belirtebilir ve sonrasında tüm özelliklere ve yöntemlere tek seferde erişebilirsiniz. “İle” ile başlar ve “Bitir” ile biter.
İfadeyle VBA’nın sözdizimi
VBA’da With deyimini kullanmak için kullanmanız gereken sözdizimi şöyledir:
With [OBJECT] [Statement] End With

- With : Bu, VBA’ya söz konusu nesneyi belirttiğinizi bildiren ifadenin başlangıç anahtar sözcüğüdür.
- Object : Burada kullanmak istediğiniz nesneyi belirtmeniz gerekmektedir.
- İfade : Belirtilen nesneyle yürütmek istediğiniz bir veya daha fazla ifade.
- End With : Bu, ifadenin bitiş anahtar sözcüğüdür.
Açıklamalı VBA’yı anlama örneği
Derinlemesine ifadeyle anlaşılması için bir örnek alalım. A1 hücresinin yazı tipi rengini, boyutunu ve adını değiştirmek istediğinizi varsayalım. Bu üç şeyi yapmak için üç farklı VBA yazı tipi özelliğine erişmeniz gerekir; kod şöyle olacaktır:
Range("A1").Font.Color = RGB(0, 0, 255) Range("A1").Font.Size = 16 Range("A1").Font.Name = "Consolas"
Ancak burada yukarıdaki kod yerine With ifadesini kullanacağız. VBA With deyimini kullanmak için aşağıdaki adımları takip edebilirsiniz:
- İlk önce klavyeyi “With” yazın.
- Bundan sonra, yazı tipi nesnesini belirtmek için yazı tipi nesnesini kullanarak A1 hücresini belirtmek için VBA aralığını kullanın.
- Daha sonra üç özelliğin kodunu ve uygulamak istediğiniz değerleri girmeniz gerekiyor.
- Sonunda, ifadeyi sonlandırmak için “End With” anahtar kelimesini kullanın.
İşte az önce yazdığınız kod.
Sub MyMacro() With Range("A1").Font .Color = RGB(0, 0, 255) .Size = 16 .Name = "Consolas" End With End Sub
Şimdi her iki koda da bakalım ve “With” ifadesini kullanarak ne gibi bir farkımız olduğunu anlamaya çalışalım.

İlk kodda yazı tipi nesnesini üç kez kullandınız ve ardından erişmek istediğiniz ve değişiklik yapmak istediğiniz özelliği kullandınız.
Ancak ikinci kodda With deyimini kullandınız ve hemen yazı tipi nesnesini belirttiniz. Ve ardından üç özelliğe erişmek için “With” ifadesinde üç satır kod.
“With” ifadesini kullanıp bir nesne belirttiğinizde, VBA’ya yazdığınız tüm ifadelerin söz konusu nesneyle birlikte yürütülmesi gerektiğini söyler. Bu size yalnızca yapılandırılmış kod sağlamakla kalmaz, aynı zamanda bir makronun yürütülmesini hızlandırır ve ona daha fazla verimlilik sağlar.
İfadeyle iç içe
With ifadesini kullanmak için yalnızca bir nesne belirtebileceğinizi başlangıçta söylemiştim. Ancak onunla birden fazla, hatta birden fazla öğeyi kullanmanın bir yolu var. Bu, VBA LOOPS kullanıyor ve birden fazla nesne arasında döngü yapmak ve “With” seçeneğini kullanmak için FOR EACH LOOP’u kullanacağız.
Sana bir örnek vereyim; tüm çalışma sayfalarını gözden geçirmeniz ve aşağıdakilerin tümünü her çalışma sayfasındaki tüm hücrelere uygulamanız gerekir.
- Yazı tipi boyutu: 16
- Yazı tipi: Verdena
Çalışma kitabında da aşağıdaki örnekte olduğu gibi beş çalışma sayfanız var:

İç içe geçmiş bir “With” ifadesi yazmak için aşağıdaki adımları kullanın.
- Öncelikle bir çalışma sayfası nesnesini kullanmak için bir değişken bildirmeniz gerekir.
- Bundan sonra dediğim gibi For Every Loop kullanmanız gerekiyor. Bu nedenle , tüm çalışma sayfalarında dolaşabilecek döngüye sahip bir kod yazmanız gerekir.
- Şimdi yukarıda tartıştığımız yazı tipi ayarını uygulayabilecek with ifadesini girin. Çalışma sayfasındaki tüm hücrelere atıfta bulunmak için konuyu belirtirken “Hücreler” komutunu kullanabilirsiniz.
İşte az önce yazdığınız kodun tamamı.
Sub MyMacro() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets With Cells .Font.Size = 16 .Font.Name = "Verdena" End With Next ws End Sub