Klasa VBA - Jak tworzyć niestandardowe klasy i obiekty w VBA?

Spisie treści

Moduł klasy Excel VBA

Klasa VBA pozwala nam stworzyć własną funkcję Object, w której możemy dodać dowolne funkcje, szczegóły wiersza poleceń, typ funkcji. Kiedy tworzymy Class w VBA, działają one jak całkowicie niezależna funkcja obiektu, ale wszystkie są ze sobą połączone.

Pomaga nam to w budowaniu aplikacji, takich jak te, które są już dostępne w VBA i Excel. Na przykład obraca się koło cyklu pedałowania. Pedały i kółka są częściami Cycle, ale oba działają niezależnie, dając sygnał wyjściowy jako ruchomy cykl.

Jak tworzyć niestandardowe klasy i obiekty w VBA?

Rozważmy przykład telefonów komórkowych 3 różnych firm, którymi są Apple, Samsung i Nokia, biorąc pod uwagę popularne i nowo wprowadzone na rynek telefony komórkowe tych firm, którymi są iPhone X, Samsung S8 i Nokia 7+.

Porównamy niektóre ważne funkcje tych telefonów komórkowych, takie jak marka, model, rozmiar ekranu, typ aparatu i typ ładowarki. Są to w zasadzie ważne cechy na tej podstawie. Najczęściej porównujemy dowolny telefon komórkowy. Poniżej mapowaliśmy wyżej omówione parametry na wykresie.

W oknie VBA z menu Wstaw wybierz moduł klasy, jak pokazano poniżej.

Otrzymamy okno modułu klasy zaczynające się od Option Explicit, jak pokazano poniżej.

Option Explicit zapewnia, że ​​zmienne muszą zostać zadeklarowane przed ich użyciem. Jeśli nie zadeklarujemy żadnej zmiennej i jej nie użyjemy, to system zgłosi błąd. Teraz w klasie, określenie wszystkich omawianych parametrów pomiaru telefonów komórkowych z Publicznego . Dzięki temu te zdefiniowane parametry będą dostępne w dowolnym miejscu i czasie, bez żadnych ograniczeń.

Kod:

Option Explicit 'Lista właściwości Public Brand As String Public Model As String Public ScreenSize As String Public CameraType As String Public ChargerType As String

Teraz dodamy inny proces obsługi, cechy i funkcje telefonu komórkowego, takie jak uruchamianie telefonu, wyłączanie telefonu, odtwarzanie muzyki, ładowanie baterii itp. Z podkategorią dla każdej funkcji, jak pokazano poniżej. I dodaj okno komunikatu w każdej pętli podkategorii, abyśmy mogli zobaczyć, które metody są aktualnie uruchomione.

Kod:

„Możliwe techniki” Sub MobileStarts () MsgBox „Telefon komórkowy się włącza” End Sub
Sub MobileOff () MsgBox „Telefon komórkowy wyłącza się” End Sub
Sub PlayMusic () MsgBox „Obecnie działa system audio” End Sub
Sub BatteryCharge () MsgBox "Ładowarka jest obecnie podłączona" End Sub

Na tym kończy się tworzenie klasy. Zanim przejdziemy dalej, warto zmienić nazwę modułu klasy. Wybierz dowolną nazwę zgodnie z wymaganiami, ponieważ zmieniamy ją na mobilną .

Teraz napiszemy kod w module, w którym zobaczymy i porównamy cechy i funkcje każdej marki telefonu komórkowego. W tym celu musimy dodać moduł , przechodząc tam w menu Wstaw, jak pokazano w menu.

Otrzymamy nowy moduł otwarty z włączoną opcją Option Explicit podczas pracy i tworzenia klasy. Teraz zacznij pisać podkategorię w nazwie wykonywanych funkcji, jak pokazano poniżej.

Możemy zmienić nazwę modułu, tak jak zrobiliśmy to w przypadku Class. Pomaga nam to zachować powiązaną tożsamość utworzonego kodu VBA. Można to zrobić w oknach właściwości, jak pokazano poniżej.

Zdefiniowaliśmy już różne cechy, funkcje i metody wszystkich telefonów komórkowych tej marki. Teraz zdefiniujmy 3 zmienne w dowolnej nazwie (najlepiej w nazwie marki telefonu komórkowego) i przypiszmy je do Mobile. Zacznijmy najpierw od iPhone'a, jak pokazano poniżej.

Podobnie zrób to samo dla pozostałej marki telefonu komórkowego, jak pokazano poniżej.

W ten sposób przypisujemy utworzoną klasę do każdej zmiennej wymiarowej marki Mobile. Teraz dla każdej marki wykonaj ten sam proces przypisywania klasy .

Teraz musimy przypisać wszystkie funkcje telefonu komórkowego i jego wartość. W tym celu użyj funkcji Set i przypisz go do nowego telefonu komórkowego, jak pokazano poniżej.

Teraz otwórz pętlę With-End dla iPhone'a. Tutaj zdefiniujemy każdy atrybut telefonu komórkowego.

Jak widzimy, przypisaliśmy wszystkie zdefiniowane cechy marki iPhone z Class z określonymi wartościami jako String.

Zrób to samo dla marki Samsung i Nokia.

Teraz użyjemy DebugPrint do wydrukowania informacji w najbliższym oknie. Jest to przydatne, gdy chcemy zobaczyć określoną zmienną w linii kodu. Wybierzemy różne funkcje dla każdej marki telefonu komórkowego, jak pokazano poniżej.

Teraz przypisz operacje funkcjonalne MobileStarts i MobileOff , które zdefiniowaliśmy w Class, do każdej z marek mobilnych w tym samym module wraz z polem Message. Tutaj możesz pominąć okno komunikatu.

Na tym kończy się przypisywanie klasy do modułu. Teraz skompiluj kod i uruchom, używając klawisza F5. Zobaczymy przekaz każdej marki mobilnej, jak pokazano poniżej.

Now, if you want to know what variables and functions have what kind of values in it, for that open the Local window from the view tab, which will help us getting the details when we compile the code as shown below.

The below code is for your Reference.

Code:

Sub VBA_Class() Dim iPhone As Mobile Dim Samsung As Mobile Dim Nokia As Mobile Set iPhone = New Mobile With iPhone .Brand = "iPhone" .Model = "iPhone X" .ScreenSize = "6.5 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Regular" End With Set Samsung = New Mobile With Samsung .Brand = "Samsung" .Model = "Samsung S8" .ScreenSize = "5.8 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Set Nokia = New Mobile With Nokia .Brand = "Nokia" .Model = "Nokia 7+" .ScreenSize = "6 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Debug.Print "Phone Screen Size is: " & iPhone.ScreenSize Debug.Print "Camera of Samsung is: " & Samsung.CameraType Debug.Print "Charger Type is: " & Nokia.ChargerType iPhone.MobileStarts iPhone.MobileOff MsgBox iPhone.Model Samsung.MobileStarts Samsung.MobileOff MsgBox Samsung.Model Nokia.MobileStarts Nokia.MobileOff MsgBox Nokia.Model End Sub

Pros

  • We can build our own application with a lot of features.
  • Once Class is created, we can update any feature, anytime whenever we require.
  • If we update the code, then also it won’t cause any problem in other parts of the Class.
  • We can test the individual part of the application as per our needs.

Cons

  • Initially, it takes a lot of time to create a class in VBA.
  • People who are new to VBA will find the class very difficult to apply.

Things to Remember

  • As the code can be huge and big, so it’s better to compile the code step-by-step. By doing this, we would avoid the N number of errors, which will be difficult for us to debug and resolve.
  • We can ignore the use of Message Box if you are taking and testing the above-written code.
  • Do testowania możesz użyć mniejszych technik lub funkcji podczas tworzenia Class. Można to później zmodyfikować, gdy chcemy dodać więcej funkcji i technik produktu.
  • Zawsze rozważ podobne lub te same funkcje, kiedy kończymy zajęcia i przypisujemy je do modułu. Pomoże nam to porównać cechy różnych produktów.

Interesujące artykuły...