Moduły klas VBA i jak ich używać

Spisie treści

Czym jest klasa w VBA?

Klasa jest planem tworzenia obiektu. Sama klasa nie robi nic poza klasami, które umożliwiają tworzenie wielu identycznych obiektów, które mogą wykonywać operacje lub mogą być używane jako zasób danych.

W rzeczywistości model (konstrukcja i funkcjonalność) samochodu jest klasą, a sam samochód jest obiektem tej klasy. Na zajęciach określamy, co ma w sobie samochód i co potrafi. Na przykład samochód ma 4 koła, 5 biegów, kierownicę itp. Są to atrybuty/właściwości. Definiujemy również, co potrafi samochód, jak poruszanie się do przodu, do tyłu, skręcanie itp. Są to funkcje klasy samochodu. Obiekt car utworzony przy użyciu klasy car będzie posiadał wszystkie te właściwości. Jeśli zdefiniujesz samochód, który ma 5 kół, samochód stworzony przy użyciu tej klasy będzie miał 5 kół. Dostajesz punkt.

Dość teorii, teraz zobaczmy, jak można wykorzystać moduł klasy w VBA.

Korzystanie z modułu klasy Excel VBA

Podczas pracy w VBA musisz użyć Range("A1").select. Zakres jest predefiniowaną klasą w VBA. Select jest jedną z funkcji klasy Range, która wybiera określony zakres. Podobnie Debug jest klasą w VBA, a print i attach są jej metodami. Arkusze, skoroszyty, zakresy itp. są klasami VBA, których używamy w naszych subs.

Stwórz własną klasę

Najpierw musimy dodać moduł klasy w VBA

Naciśnij kombinację klawiszy ALT + F11, aby otworzyć edytor Excel VBA.

    • Kliknij prawym przyciskiem myszy Eksplorator projektów. Przesuń kursor na Insert--> Class module. Kliknij na to. To samo można zrobić z menu Wstaw.

    • Klasa zostanie dodana do folderu „Moduł zajęć”. Domyślna nazwa to klasa1, klasa2 i tak dalej. Możesz zmienić nazwę klasy w oknie właściwości. Nazwijmy naszą klasę „Witamy”.

  • Teraz stwórzmy i dodajmy kilka atrybutów do naszej klasy. Ponieważ chcę, aby te atrybuty były dostępne publicznie, używam operator dostępności publiczny.
    Nazwa publiczna As String Publiczna zmienna1 As Integer Publiczna zmienna2 As Integer 
  • Dodajmy teraz funkcję do tej klasy. Potrzebuję funkcji, która mówi Cześć! do użytkownika. Aby to zrobić, dodaj sub i nazwij go sayHiTo.
    Sub sayHiTo(user As String) name = user MsgBox ("Cześć! " i nazwa) End Sub 
  • Teraz użyjmy klasy w module. Włóż nowy moduł, jeśli go nie masz. Napisz sub. Nazwałem mój test podrzędny.
    Sub test() Dim wc As New Welcome 'Zadeklarowany i zainicjowany obiekt Welcome wc.sayHiTo („Jack”) 'używał metody sayHiTo obiektu Welcome. Napis końcowy 
  • Uruchom ten test podrzędny za pomocą klawisza F5. W skoroszycie programu Excel pojawi się komunikat „Cześć! Jack”.

Jak to działa?

W teście podrzędnym utworzyliśmy obiekt „wc” z Witamy klasa. Obiekt tworzony jest w VBA na dwa sposoby. uruchamiamy kod, Test sub tworzy obiekt wc klasy Welcome. Ten obiekt posiada wszystkie właściwości klasy Welcome. Używamy metody sayHiTo klasy Welcome, aby przywitać się z użytkownikiem.

Tworzenie obiektów w Excel VBA

    1. Natychmiastowe tworzenie

W Instant creation tworzymy obiekt deklarując go klawiszem „new”. W naszym przykładzie powyżej użyliśmy błyskawicznego tworzenia.

Dim wc jak nowe powitanie

2. Opóźnione tworzenie
W opóźnionym tworzeniu najpierw deklarujemy tylko obiekt. Nie używamy słowa kluczowego „nowe”. Aby użyć obiektu, musimy zainicjować go słowem kluczowym "new".

Sub test() Dim wc As Welcome 'wc.sayHiTo ("Jack") 'generuje błąd, ponieważ wc nie jest jeszcze zainicjowany 'inicjowanie obiektu Set wc = New Welcome wc.sayHiTo ("Cory") 'to zadziała. Napis końcowy 

Dostęp do zmiennych klasy

W powyższych przykładach użyliśmy zmiennych publicznych dla klasy, ale ćwiczenie jest niewłaściwe. Powinniśmy unikać używania zmiennych publicznych w klasie. Teraz pytanie brzmi, jak moglibyśmy uzyskać dostęp do zmiennych klasy. Wcześniej używaliśmy podprogramu w celu uzyskania dostępu do nazwy, ale klasy VBA zapewniają właściwości, które są używane do systematycznego aktualizowania i pobierania wartości zmiennych prywatnych klasy. Właściwości są bardziej eleganckie niż sub lub funkcja do aktualizowania i uzyskiwania dostępu do zmiennych prywatnych. Zobaczmy jak.

Składnia właściwości klasy

Nazwa prywatna As String Prywatna zmienna1 As Integer Prywatna zmienna2 As Integer Nieruchomość MyName(nm As String) name = nm End Property Kup nieruchomość MyName() As String MyName = nazwa End Property 

Wykorzystajmy je w module.

Sub test() 'tworzenie obiektu klasy Dim wc As New Welcome Dim wc1 As New Welcome 'za pomocą właściwości wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. MojaNazwa Koniec Sub 

Kiedy uruchomisz ten test podrzędny, otrzymasz dwie nazwy wydrukowane dla dwóch obiektów klasy "Witamy".

Czym właściwości różnią się od sub i funkcji

W powyższym przykładzie zwróć uwagę, że użyliśmy właściwości MyName jako zmiennej. Zainicjowaliśmy wartość zmiennej „Nazwa” po prostu pisząc wc.MyName="assdf". Ten wiersz polecenia nazywa się właściwością o nazwieWłaściwość Pobierz MyName() As String. Nie przekazaliśmy żadnej wartości w nawiasach, tak jak na początku.

Podobnie do wydrukowania wartości zmiennej "Nazwa" użyliśmy poleceniaDebug.Print wc.MyName. Czy nie jest to tak proste, jak zwykła inicjalizacja zmiennej? Jedyna różnica polega na tym, że w tym czasie można zrobić bardzo dużowłasność człon. Wprowadzasz walidację danych, obliczenia, komunikację itp., a użytkownik zobaczy tylko wynik.

Kolejną różnicą jest to, że możemy użyć tej samej nazwy właściwości, aby pozwolić oraz dostwaćczęść. To sprawia, że ​​jest to łatwiejsze i mniej zagmatwane.

Więc tak, to był prosty przykład modułu klasowego w Excel VBA. To tylko wierzchołek góry lodowej, w tym temacie jest dużo soku, który omówimy w kolejnych artykułach. Każdy z nich zbadamy po kolei w możliwie najprostszy sposób. Mam nadzieję, że wyjaśniłem to wystarczająco, abyście to zrozumieli. Jeśli masz jakiekolwiek wątpliwości dotyczące tego tematu lub jakiegokolwiek innego tematu Excel VBA, wspomnij o tym w sekcji komentarzy poniżej.

Importuj moduł z pliku za pomocą VBA w Microsoft Excel | Dowiedz się, jak zaimportować cały moduł z innego pliku za pomocą VBA.

Utwórz nowy moduł za pomocą VBA w Microsoft Excel | Możesz użyć modułu do stworzenia kolejnego modelu w VBA. Pomoże to zminimalizować dodatkowe koszty ogólne.

Dodaj procedurę do modułu za pomocą VBA w Microsoft Excel | Aby automatycznie dodać procedury do modułów, użyj tego kodu VBA.

Popularne artykuły:

50 skrótów Excela zwiększających produktywność | Przyspiesz swoje zadanie. Te 50 skrótów przyspieszy pracę w programie Excel.

Funkcja WYSZUKAJ.PIONOWO w programie Excel | Jest to jedna z najczęściej używanych i popularnych funkcji programu Excel, która służy do wyszukiwania wartości z różnych zakresów i arkuszy.

LICZ.JEŻELI w programie Excel 2016 | Policz wartości z warunkami za pomocą tej niesamowitej funkcji. Nie musisz filtrować danych, aby policzyć konkretną wartość. Funkcja Countif jest niezbędna do przygotowania deski rozdzielczej.

Jak korzystać z funkcji SUMA.JEŻELI w programie Excel | To kolejna ważna funkcja deski rozdzielczej. Pomaga to zsumować wartości w określonych warunkach.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave