VBA Genel Değişkenleri - VBA'da Genel Değişkenler Nasıl Bildirilir (Örnekler)

VBA'da Genel Değişkenler

VBA'daki "Genel Değişkenler", adından da anlaşılacağı gibi, aynı modülde ve farklı modüllerde yazdığımız tüm makrolar için genel olarak kullanılmak üzere bildirilen değişkenlerdir. Dolayısıyla, değişkenler herhangi bir makronun başlangıcında bildirildiğinde, "Genel Değişkenler" veya "Global Değişkenler" olarak adlandırılır.

VBA'da Genel Değişkenler Nasıl Bildirilir?

Genellikle, VBA alt prosedürünü başlatırız ve alt prosedürün içinde değişkenlerimizi bildiririz. Bu makaleye kadar hepimizin yaptığı ortak uygulama budur.

Yeni bir alt prosedür yazdığımızda, kendilerine atanmış veri türleriyle yeni değişkenler bildiriyoruz. Ancak bugün, alt prosedürler arasında tekrar eden değişkenlere veda edeceğiz.

Eski tarzı hatırlayalım. Tek değişkenle yazdığım kod aşağıdadır.

"Public_Variable" alt prosedüründe, bu değişkeni tanımladım. Şimdi diğer modüllerin hiçbirini kullanamıyorum.

Şimdi "Public_Variable1" alt prosedüründe, ilk alt prosedür olan "Public_Variable" da bildirilen "Var1" değişkenini kullanamayız. Bu, alt prosedürler içinde değişken bildirme sınırlamasıdır.

# 1 - Modül Seviyesi Değişkenleri

Hepimizin bildiği gibi, makroları modüller halinde yazıyoruz. Birkaç modül ekleyebiliriz. VBA'da iki tür "Genel Değişken" tanımlayabiliriz, biri aynı modüldeki tüm alt prosedürler için değişkenleri kullanmak, ikincisi ise tüm modüllerdeki tüm alt prosedürler için değişkenleri kullanmaktır.

İlk olarak, VBA'da modül düzeyinde public değişkenlerin bildirildiğini göreceğiz.

Değişkenleri aynı modüldeki tüm alt prosedürler için kullanmak için, herhangi bir makroya başlamadan önce değişkenleri modülün üst kısmında tanımlamamız gerekir.

Anlayışınız için örnek ekran görüntüsü aşağıdadır.

Yukarıdaki görüntüde görebileceğimiz gibi, modülde herhangi bir makroya başlamadan önce iki değişken tanımladım. Şimdi, bu iki değişken, bu modüldeki herhangi bir sayıda makroda kullanılabilir.

Alt prosedür içinde, IntelliSense listesinin değişken adlarını göstereceğini görebileceğiniz değişken adını yazmaya başlar.

Artık bu değişkenleri “Module1” de yazdığımız tüm makrolarda kullanabiliriz.

Bu değişkenler yalnızca bu modülde kullanımla sınırlıdır. Örneğin şimdi bir modül daha ekleyip yeni bir makro yazacağım.

Module2'de "Module1" de tanımladığımız değişkenleri kullanamıyorum.

Öyleyse, tüm modüllerde ve tüm alt prosedürlerde kullanılmak üzere bu değişkenleri VBA'da nasıl genel hale getirebiliriz?

# 2 - Değişkenlerin onları herkese açık olarak kullandığını beyan edin

Bu modülde "Modül1" e geri dönün. Makronun yolunu yazmaya başlamadan önce değişkenleri ve bu değişkenleri bildirmek için hangi dünyayı kullandığımızı tanımladık.

Geleneksel “DIM” kelimesini kullanma şeklimiz bu değişkenleri açıkladık.

Yalnızca "DIM" kelimesini kullandığımızda, yalnızca tüm makrolarda, ancak aynı modülde kullanılmak üzere sınırlıdır.

"DIM" kelimesi yerine, bunları tüm makro modüllerinde kullanılabilir hale getirmek için "KAMU" veya "GLOBAL" kelimesini kullanmamız gerekir.

Değişken bildirimini herkese açık hale getirmek için "Global" kelimesini kullandım. Ayrıca "Genel" kelimesini de kullanabilirsiniz.

Dolayısıyla, "Global" ve "Public" sözcüklerini kullanarak, modüller arasında tüm makrolar için kullanılabilecek değişkenler tanımlayabiliriz.

Hatırlanacak şeyler

  • Değişkenleri herkese açık olarak bildirmek iyi bir uygulamadır, ancak bunları bildirmeden önce bol deneyim gerektirir.
  • Makrolar çalıştırılmaya başlandığında, değişkenin makronun değeri aynı olacaktır.
  • Herhangi bir karışıklığı önlemek için, belirli bir değeri yalnızca belirli bir makronun içindeki değişkene atayın.

Ilginç makaleler...