VBA Sınıf Modülleri Nasıl Oluşturulur ve Kullanılır? (Örnekler)

Excel VBA Sınıf Modülleri

VBA'yı kullandığımızda, VBA'da tanımlanan özellikleri ve öznitelikleri kullanırız, ancak kendi özelliklerimizi, yöntemlerimizi ve özniteliklerimizi oluşturmak istediğimizde, yani VBA'da bir sınıf modülü kullandığımızda ne olur ki böylece onu kullanıcı tanımlı yapabiliriz. sınıf modülü, kullanıcı tarafından işlevler, özellikler ve nesneler için tanımlanmış kendi kod setine sahiptir.

Sınıf Modülleri, bir nesne oluşturmak için kullanılır. Nesneler dediğimizde değişken olmasına rağmen bunlar küçük programlardır. Kodu yazarken genellikle modüller halinde yazarız. Temel modüller, işi yapmak için kodlarımızı yazdığımız yerdir. Grafik Kullanıcı Arayüzleri oluşturmak için Kullanıcı Formunu da kullanıyoruz.

Ancak yukarıdaki resme bakarsanız “Sınıf Modülü” nü görebilirsiniz. Bu yazıyı okuyana kadar ona dokunmadığından eminim. Bu VBA sınıfı modülün ne olduğunu merak ediyor olmalısınız, tüm iş normal Modülümüzün kendisi kullanılarak yapılabilir.

Sınıf Modülü nedir?

Sınıf Modülleri, tıpkı "Çalışma Sayfaları", "Çalışma Kitapları", "Aralık" vb. Gibi normal modüllerdeki yerleşik nesnelere sahip olduğumuz gibi, kullanıcının kendi nesnesini oluşturmasına olanak tanır.

Bunun gibi bir sınıf modülü kullanarak özel nesneler oluşturabiliriz.

Sınıfın nesnelerle doğrudan bir ilişkisi vardır. Örneğin, bir makine yapmak için bir makine diyagramınız var, ancak bunun henüz bir makine olmadığını ve bu makine diyagramını kullanarak bunun gibi birçok makine oluşturabileceğimizi unutmayın.

Örneğin, çeşitli modellerin özelliklerini listelemek için çeşitli makine markalarını listelemek isterseniz.

Makinede bir marka adı, seri numarası, makine gücü, makinenin rengi, içinde yer alan motor sayısı, motor yakıt türü vb. Var. Teknik dilde bunlara “özellikler” denir.

Makinenin özellikleriyle ilgili olarak başlayabiliriz, kapatabiliriz, motorun hızını artırabiliriz, duraklayabiliriz vs… Ve bunlara “Yöntemler” denir.

Misal

Bu VBA Sınıf Şablonunu buradan indirebilirsiniz - VBA Sınıf Şablonu

Topu yuvarlayarak başlayalım çünkü teorik kısmı okumak her zaman sıkıcı bir şeydir. Bir sınıf modülü eklemek için visual basic editörde ekleme seçeneğine gidin.

Şimdi aşağıdaki gibi bir sınıf modülü görebiliriz.

Bu, normal modül olarak yukarıda sahip olduğumuza benziyor. Özellikler penceresinde sınıf modülünün adını değiştirin. Özellikler penceresini görmek için F4 tuşuna basın .

Şimdi değişkeni bir dizge olarak bildirin.

Vba'da bir alt prosedür oluşturmadan, değişkeni ve bu sefer "Dim" yerine "Public" kelimesini kullanarak bildirmemiz gerekiyor.

Artık bu değişkene herhangi bir modül ve sınıf modülünden erişebiliriz.

Şimdi normal bir modüle gidin ve değişkeni adlandırın.

Değişkeni tanımladıktan sonra, veri türünü VBA'da atamamız gerekir, veri türünü atamak yerine yalnızca sınıf modülünün adını verebiliriz, yani CM

Şimdi "k" değişkenini kullanarak sınıf modülünde tanımladığımız public değişkene, yani "Değerim" e erişebiliriz.

Yukarıdaki resimde görebileceğimiz gibi, sınıf modülünden değişken adı seçeneğini ona değer atamak için gösteriyor.

Şimdi, atanan değişkenin değerini VBA mesaj kutusunda gösterin.

Kod:

 Sub Class_Example () Dim k As New CM k.MyValue = "Merhaba" MsgBox k.MyValue End Sub 

Sonucu göstermek için bu kodu F5 tuşunu kullanarak veya manuel olarak çalıştırın.

Sınıf Modülü ve Nesneler

Sınıf modülünün ilk aşamasında, herkes sınıfın ne olduğu ve nesnenin ne olduğu ile karıştırılır.

Bunu anlamak için önceki bir makine diyagramı örneğimizi hatırlayın. Bir makineyi üretmek için ilk ihtiyacımız olan şey, önce makineyi tasarlamamız ve ardından bu tasarımla birkaç kopya çoğaltılabilir.

Şimdi bunu sınıf modülümüzle ilişkilendirin.

  • Burada Sınıf Modülü bir Tasarımdır. Ve Nesne , Tasarım tarafından oluşturulan kopyadır .
  • Bir başka ilginç şey de, sınıf modülünden bir nesne oluşturmak için "yeni" kelimesini kullanmamız gerektiğidir.

Aşağıda bunun bir örneği var.

Çalışma sayfaları, çalışma kitapları ve aralık nesneleri gibi yerleşik nesneleri kullandığımızda "yeni" kelimesini kullanmadığımız bir şey daha var

İşlemlere Sınıf Modülü ile başlamak için bilmeniz gereken bu temel şeyler. Önümüzdeki makalelerde bir sonraki seviye örneklerini göreceğiz.

Bunu anlamak zor görünüyor, bir sınıf modülüyle ne kadar çok zaman geçirirseniz alışırsınız.