With end with ifadelerinin nesne veya koleksiyonlarla kullanılması
VBA With ifadeleri, aynı nesne veya koleksiyonla ilgili karmaşık kodları basitleştirmenizi sağlar. Sürekli olarak aynı nesneye gönderme yapmak yerine, bu nesneyi belirleyerek üzerinde bir dizi eylem gerçekleştirmek için bir With… End With ifadesi kullanabilirsiniz. Ortaya çıkan kodun okunması daha kolay olduğu gibi, aynı zamamanda daha da hızlı çalışır. Bir with ifadesinin söz dizimi aşağıdaki gibidir:
With object Olaylar (kodlar) Ent withBuradaki object, bir koleksiyonda dahil olmak üzere herhangi bir nesne olabilir. Örnek olarak bir pargrafın etkin biçemini, farklı bir biçem uygulamadan biraz süslemek için bir paragrafa uygulamak isteyebileceğiniz bir biçimlendirmeyi ele alalım. Diyelim ki farklı bir font daha büyük bir punto ve alt çizgisiz yazı karakterli uygulamaya, ancak paragrafın hala heading 1 biçemi ile belirlenmesine karar verdiğiniz. Bu biçimlendirmeyi ona aşağıdaki üç ifadeyle uygulayabirizsiniz:
Selection.Font.Name =”Arial Black” Selection.Font.Size = 24 Selection.Font.Underline = wdUnderlineNone
Altenatif olarak bu kodu basitleştirmek için bir with ifadesi de kullanabilirsiniz.
With selection.Font .Name=”Arial Black” .Size =24 .Underline = wdUnderlineNone End with
Buradaki with ifadesi ile End with ifadesi arasındaki bütün ifadeler with ifadesi ile tanımlanan selection.font nesnesi için geçerlidir. Benzer bir biçimde, etkin seçime pragraf biçimlendirmesi uygulamak içinde bir with ifadesi kullanabilirsizin. Aşağıdaki ifadeler paragraf öncesi boşluğu, punto. Sonrası boşluğu da 12 punto yapar
With selection.ParagraphFormat .spaceBefore = 0 .SpaceAfter=12 End with
Burada with ifadesi ile End with ifadesi arasındaki bütün ifadeler selection.ParagraphFormat nesnesi için geçerlidir. Aynı zamanda bu iki with ifadesini, her ikisinde de ortak olan Selection. Nesnesini kullanarak aşağıdaki şekilde birleştirebilirsizin:
With selection .Font.Name = “Arial Balack” .Font.Size = 25 .Font.Underline= wdUnderlineNone .ParagraphFormat .spaceBefore= 0 .spaceAfetr= 12 End with
Ayrıca aşağıdaki örnekte olduğu gibi with ifadelerini iç içe de geçirebilirsiniz. Bu örnekte iç içe geçirmenin kullanılması (düzgün çalışsa da) şart değildir ama başka durumlarda onu gerekli bulabilirsiniz.
With selection .Font.Name = “Arial Balack” .Font.Size = 25 .Font.Underline= wdUnderlineNone End with
With.ParagraphFormat .spaceBefore= 0 .spaceAfetr= 12 End with End with
İPUCU: VBA kullanmayı öğrenirken bir with ifadesi oluşturmanın en kolay yolu, makro kaydediciyi üzerinde çalışmak istediğiniz nesnelere erişim yöntemini ve üzerlerinde gerçekleştiriğiniz eylemleri kaydetmek için kullanmaktır. Bunu yaptıktan sonra kodu visual Basic Editörde düzenleyin ve bu eylemleri gerçekleştirmek için kaydedilmiş olan kodun daha basit bir sürümünü kullanan with ifadesi oluşturun.
YENİ YAZILARA ÜCRETSİZ ABONE OL