VBA'da Sınıf Nedir?
Sınıf, oluşturulacak bir nesne için bir plandır. Bir sınıfın kendisi, sınıfları kullanmaktan başka bir şey yapmaz, işlemleri gerçekleştirebilen veya bir veri kaynağı olarak kullanılabilen birden çok özdeş nesne oluşturabilirsiniz.
Gerçek hayatta, bir arabanın modeli (tasarımı ve işlevleri) bir sınıftır ve arabanın kendisi o sınıfın bir nesnesidir. Sınıfta, arabanın içinde ne olduğunu ve neler yapabileceğini tanımlarız. Örneğin, bir arabanın 4 tekerleği, 5 vitesi, direksiyonu vb. vardır. Bunlar nitelikler/özelliklerdir. Ayrıca, ileri, geri, dönüş vb. gibi bir arabanın neler yapabileceğini de tanımlarız. Bunlar araba sınıfının işlevleridir. car sınıfı kullanılarak oluşturulan bir araba nesnesi, tüm bu özelliklere sahip olacaktır. 5 tekerleği olan bir araba tanımlarsanız, bu sınıf kullanılarak oluşturulan bir arabanın 5 tekerleği olacaktır. Konuyu anladın.
Yeterince teori, şimdi VBA'da bir sınıf modülünü nasıl kullanabileceğinizi görelim.
Excel VBA sınıf modülünü kullanma
VBA'da çalışırken Range("A1").select kullanmış olmalısınız. Aralık, VBA'da önceden tanımlanmış bir sınıftır. Select, belirtilen aralığı seçen Range sınıfının işlevlerinden biridir. Benzer şekilde, Hata Ayıklama VBA'da bir sınıftır ve yazdır ve onayla yöntemleridir. Çalışma Sayfaları, Çalışma Kitapları, Aralık vb. tümü, altlarımızda kullandığımız VBA sınıflarıdır.
Kendi sınıfınızı oluşturun
İlk olarak, VBA'da bir sınıf modülü eklememiz gerekiyor
Excel VBA düzenleyicisini açmak için ALT+F11 tuş bileşimine basın.
-
- Proje gezginine sağ tıklayın. İmleci Ekle--> Sınıf modülüne taşıyın. Üstüne tıkla. Aynı şey Ekle menüsünden de yapılabilir.
-
- Sınıf, "Sınıf modülü" klasörüne eklenecektir. Varsayılan ad, sınıf1, sınıf2 vb. gibidir. Özellik penceresinden sınıf adını değiştirebilirsiniz. Sınıfımıza "Hoş Geldiniz" adını verelim.
- Şimdi sınıfımıza bazı nitelikler ekleyelim. Bu özelliklerin herkese açık olmasını istediğim için, erişilebilirlik operatörü halka açık.
Public name As String Public var1 As Integer Public var2 As Integer
- Şimdi bu sınıfa bir fonksiyon ekleyelim. Merhaba diyen bir işlev istiyorum! kullanıcıya. Bunu yapmak için bir alt ekleyin ve sayHiTo olarak adlandırın.
Sub sayHiTo(user As String) name = user MsgBox ("Merhaba! " & name) End Sub
- Şimdi sınıfı bir modülde kullanalım. Eğer yoksa yeni bir modül ekleyin. Alt yaz. Alt Testimi adlandırdım.
Sub test() Dim wc As New Welcome 'Wc.sayHiTo ("Jack") Hoş Geldiniz nesnesi bildirildi ve başlatıldı ', Hoş Geldiniz Nesnesinin sayHiTo yöntemini kullandı. Alt Bitiş
- F5 tuşunu kullanarak bu alt Testi çalıştırın. Excel çalışma kitabında "Merhaba! Jack" yazacaktır.
O nasıl çalışır?
Alt Testte, oluşturduğumuz bir "wc" nesnesidir. Hoş geldin sınıf. VBA'da iki yöntemle bir nesne oluşturulur. kodu çalıştırıyoruz, Test sub, Welcome sınıfının bir wc nesnesini oluşturuyor. Bu nesne, Hoş Geldiniz sınıfının tüm özelliklerine sahiptir. Kullanıcıya merhaba demek için Welcome sınıfının sayHiTo yöntemini kullanıyoruz.
Excel VBA'da Nesne Oluşturma
-
- Anında oluşturma
Instant oluşturmada, "new" tuşu ile nesneyi bildirirken bir nesne oluşturuyoruz. Yukarıdaki örneğimizde anında oluşturma kullandık.
Dim wc Yeni Karşılama
2. Gecikmeli oluşturma
Gecikmeli oluşturmada, önce yalnızca nesneyi bildiririz. "Yeni" anahtar kelimesini kullanmıyoruz. Nesneyi kullanmak için onu "new" anahtar kelimesiyle başlatmamız gerekiyor.
Sub test() Dim wc As Welcome 'wc.sayHiTo ("Jack") 'wc henüz başlatılmadığından hata üretiyor Set wc = New Welcome wc.sayHiTo ("Cory") 'bu işe yarayacak. Alt Bitiş
Bir Sınıfın Değişkenlerine Erişim
Yukarıdaki örneklerde, sınıf için genel değişkenleri kullandık ancak pratik yapmak yanlış. Bir sınıfta genel değişkenleri kullanmaktan kaçınmalıyız. Şimdi soru, sınıfın değişkenlerine nasıl erişeceğimizdir. Daha önce, ada erişmek için alt yordam kullandık, ancak VBA sınıfları, sınıfın özel değişken değerlerini sistematik olarak güncellemek ve almak için kullanılan özellikleri sağlar. Özellikler, özel değişkenleri güncellemek ve bunlara erişmek için alt veya işlevden daha zariftir. Nasıl olduğunu görelim.
sınıf özelliğinin sözdizimi
Private name As String Private var1 As Integer Private var2 As Integer Emlak Kiralama MyName(nm As String) name = nm End Özelliği Mülkiyet Al MyName() As String MyName = name End Özelliği
Bunları bir modülde kullanalım.
Sub test() 'sınıf nesnesi oluşturma Dim wc As New Welcome Dim wc1 As New Welcome' özellikleri kullanılarak wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. MyName End Sub
Bu alt testi çalıştırdığınızda, "Hoş Geldiniz" sınıfının iki nesnesi için iki isim yazdıracaksınız.
Özellikler alt ve işlevlerden nasıl farklıdır?
Yukarıdaki örnekte, MyName özelliğini değişken olarak kullandığımıza dikkat edin. Sadece yazarak "Ad" değişkeninin değerini başlattık wc.MyName="assdf". Bu komut satırı, adı verilen özellik olarak adlandırılır.Özellik MyName()'i Dize Olarak Al. Başlangıçta yaptığımız gibi parantez içinde herhangi bir değer geçmedik.
Benzer şekilde, "Ad" değişkeninin değerlerini yazdırmak için şu komutu kullandık:Debug.Print wc.MyName. Normal değişken başlatma kadar basit değil mi? Tek fark, çok şey yapabilmenizdir.Emlak segment. Veri doğrulama, hesaplama, iletişim vs. koyarsınız ve kullanıcı sadece sonucu görür.
Diğer bir fark, mülkün aynı adını kullanabilmemizdir. İzin Vermek ve elde etmekBölüm. Bu daha kolay ve daha az kafa karıştırıcı hale getirir.
Evet arkadaşlar, bu Excel VBA'daki bir sınıf modülünün basit bir örneğiydi. Bu, buzdağının sadece görünen kısmı, bu konuda daha sonraki makalelerde keşfedeceğimiz çok fazla meyve suyu var. Her birini mümkün olan en kolay şekilde tek tek inceleyeceğiz. Umarım bunu anlamanızı sağlayacak kadar açıklayıcı olabilmişimdir. Bu konuyla veya başka bir excel VBA konusuyla ilgili herhangi bir şüpheniz varsa, aşağıdaki yorumlar bölümünde belirtin.
Microsoft Excel'de VBA kullanarak bir dosyadan modül içe aktarma | VBA kullanarak tüm modülü başka bir dosyadan nasıl içe aktaracağınızı öğrenin.
Microsoft Excel'de VBA kullanarak yeni bir modül oluşturun | VBA'da başka bir model oluşturmak için bir modül kullanabilirsiniz. Bu, ek ek yükü en aza indirmenize yardımcı olabilir.
Microsoft Excel'de VBA kullanarak bir modüle prosedür ekleme | Modüllere otomatik olarak prosedür eklemek için bu VBA kodunu kullanın.
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.