Excel VBA Değişken Kapsamı

Tüm programlama dillerinde, tanımlanmış bir değişkene nereden erişilebileceğini tanımlayan değişken erişim belirteçlerine sahibiz. Excel VBA İstisna değildir. VBA'nın da kapsam belirleyicileri vardır. Bu kapsam belirteçleri, Excel VBA'da bir değişkenin görünürlüğünü/kapsamını ayarlamak için kullanılabilir.

Excel VBA'da üç tür kapsam belirleyicimiz vardır:

  1. Prosedür Seviyesi
  2. Özel - Modül Düzeyi
  3. Kamu - Proje Düzeyi

VBA Prosedür Seviyesi Değişken Kapsamı

Bir alt program içinde bildirilen değişkenlere yalnızca o prosedür/fonksiyon içinde erişilebilir. Prosedür düzeyinde bir kapsamları vardır. Genellikle Dim anahtar kelimesi ile bildirilirler. Modül örtük bir seçenekse, değişken bildirilmemiş, sadece doğrudan kullanılmış olabilir.

Aşağıdaki örnekte, x ve y değişkenlerine sahip bir alt program kapsam testimiz var. İlk alt programı çalıştırdığımızda mükemmel çalışıyor ve X ile Y'nin toplamını yazdırıyor.

Seçenek Açık Alt kapsamTest() Dim x, y Tamsayı Olarak ' VBA'da prosedür düzeyi değişkeni x = 2 y = 3 Debug.Print x + y End Sub Sub sum() x = 5 y = 7 Debug.Print x + y End Sub

Ancak alt yordam toplamını çalıştırdığınızda, değişkenin bildirilmediği bir hata verir. Niye ya? X ve Y, kapsam Testi prosedürüne özel olduğundan ve altyordam toplamının bunlara erişimi yoktur. Bu nedenle, alt bir hatayla karşılaşır.

VBA Özel Değişken- Modül Düzeyi Kapsamı

Tüm modülde erişilmesi gereken bir değişken bildirmek istediğinizde, herhangi bir alt program veya işlevden önce bu değişkeni modülün üstünde özel olarak bildirirsiniz.

Modülde herhangi bir alt programdan önce bildirilen değişkenler varsayılan olarak Özeldir. Dim anahtar kelimesi ile bildirseniz bile. Ancak daha açık olmak gerekirse, Private anahtar sözcüğünü kullanmak akıllıca olacaktır.

Aşağıdaki iki prosedür aynı modül modül 1'dedir.

Seçenek Açık 'VBA'da Modül düzeyi değişkeni. Hem x hem de y değişkenleri bu modüle özeldir. ve 'bu modül içindeki herhangi bir alt veya işlevden erişilebilir. Dim x As Integer Private y As Integer SubscopeTest() 'Buna projedeki herhangi bir modülden erişilebilir x = 2 y = 3 Debug.Print x + y End Sub Özel Alt toplam() ' Buna diğer modüllerden erişilemez x = 5 y = 7 Debug.Print x + y End Sub 

x ve y değişkenleri bu modülün özel değişkenleri olduğundan, yukarıdaki iki işlev mükemmel bir şekilde çalışacaktır.

Önemli: x ve y'de saklanan son değerler tüm modüle kadar korunur. Önce alt kapsamTestini çalıştırırsak ve alt toplamda x ve y değerlerini başlatıp çalıştırmazsak, x ve y'nin başlangıç ​​değeri değişmeyecektir.

Aşağıdaki alt program ayrı bir modül olan modül 2'de tanımlanmıştır. Değişkene başka bir modülden erişmeye çalıştığımda VBA prosedürü (veya işlevi) bir hatayla karşılaşıyor.

Ama alt programı çağırmaya çalışırsam toplam modül 2'deki modül 1'den bu mükemmel çalışıyor. İşlevinizi ve alt rutinlerinizi modüle özel yapmak için, alt ve işlevden önce Private anahtar sözcüğünü kullanın.

Not:- Bir modülde herhangi bir alt program veya fonksiyondan önce bildirilen değişkenler, varsayılan olarak modüle özeldir.. kullanabilirsiniz Özelanahtar kelime. Ancak işlevler ve alt programlar varsayılan olarak herkese açıktır ve bir projedeki herhangi bir modül tarafından erişilebilir. Fonksiyonları ve alt rutinleri modüle özel yapmak için Private anahtar sözcüğünü kullanmanız gerekir.

Genel Değişkenler - Proje Seviyesi Kapsamı

Yukarıdaki örneklerde öğrendiğimiz gibi, işlev ve alt rutinler varsayılan olarak geneldir ve herhangi bir modülden erişilebilir, ancak değişkenler değildir. Excel VBA'daki herhangi bir modülden bir değişkeni erişilebilir kılmak için,Public anahtar kelime kullanıyoruz.

Bir projede genel değişken bildirmek için, bunları herhangi bir işlev veya alt programdan önce public anahtar sözcüğüyle modülün üstünde bildirdiniz. Aşağıdaki kod modül 1'de yazılmıştır.

Seçenek Açık 'VBA'da proje düzeyi değişkeni. Public x As Integer Public y As Integer Public SubscopeTest() 'Buna projedeki herhangi bir modülden erişilebilir x = 2 y = 3 End Sub Private Sub sum() ' Buna diğer modüllerden erişilemez x = 5 y = 7 Hata Ayıklama x + y Bitiş Alt

Ve bu alt program başka bir modülde, modül 2'de.

Seçenek Explicit Sub mul() Çağrı kapsamıTest 'Çağrı toplamı' modüle özel olduğu için çalışmaz 1 Debug.Print x * y End Sub 

Bu sefer mükemmel çalışıyor.
İlk önce altyordamıscopeTest'i çağırdım. ScopeTest genel olduğu için çağrılır. x ve y değerlerini başlatır. Sonra x ve y'yi çarpıyoruz. ScopeTest alt programı onu 2 ve 3 değerleriyle başlattığından elde ettiğimiz sonuç 6'dır.

Evet arkadaşlar, Excel VBA projelerinde değişkenlerin, işlevlerin ve alt programların görünürlüğünü kontrol etmek için Excel'deki değişken kapsam belirteçlerini bu şekilde kullanabilirsiniz.

VBA'nın Erişim Belirticilerini elimden geldiğince en basit şekilde açıklamaya çalıştım. umarım açıklayıcı olmuştur. Bu makale veya VBA ile ilgili herhangi bir şüpheniz varsa, aşağıdaki yorumlar bölümünde bana sorun. Ben burada sizden mutlu olacağım.

ByRef ve ByVal Argümanları |Bir argüman farklı bir alt veya fonksiyona ByRef argümanı olarak iletildiğinde, gerçek değişkenin referansı gönderilir. Değişkenin kopyasında yapılan herhangi bir değişiklik orijinal argümana yansır.

Microsoft Excel'de VBA kullanarak onay istemleri olmadan sayfaları silin|VBA kullanarak sayfaları sildiğiniz için ne yaptığınızı bilirsiniz. Excel'e bu uyarıyı göstermemesini ve lanet olası sayfayı silmesini söylemek istersiniz.

Microsoft Excel 2016'da VBA Kullanarak Yeni Çalışma Kitabı Ekleme ve Kaydetme|Bu kodda önce bir çalışma kitabı nesnesine referans oluşturduk. Sonra onu yeni bir çalışma kitabı nesnesiyle başlattık. Bu yaklaşımın yararı, bu yeni çalışma kitabında işlemleri kolayca yapabilmenizdir. Kaydetme, kapatma, silme vb.

Excel VBA Durum Çubuğunda Bir Mesaj Görüntüleme Excel'deki durum çubuğu bir kod izleyicisi olarak kullanılabilir. VBA kodunuz uzun olduğunda ve VBA'yı kullanarak birkaç görev yaptığınızda, ekranın titrediğini görmemek için ekran güncellemesini genellikle devre dışı bırakırsınız.

Microsoft Excel 2016'da VBA Kullanarak Uyarı Mesajlarını Kapatın|Bu kod yalnızca VBA uyarılarını devre dışı bırakmakla kalmaz, aynı zamanda kodun zaman verimliliğini de artırır. Nasıl olduğunu görelim.

Popüler Makaleler:

Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.

Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.

Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli bir değeri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.

Excel'de SUMIF İşlevi Nasıl Kullanılır | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave