Excel VBA-Klassenmodul
Mit der VBA-Klasse können wir unsere eigene Objektfunktion erstellen, in der wir alle Arten von Features, Details der Befehlszeile und Funktionstypen hinzufügen können. Wenn wir eine Klasse in VBA erstellen, verhalten sie sich wie eine völlig unabhängige Objektfunktion, aber sie sind alle miteinander verbunden.
Dies hilft uns beim Erstellen von Anwendungen, wie sie bereits in VBA und Excel vorhanden sind. Zum Beispiel dreht sich das Tretradrad. Pedale und Räder sind beide Teile von Cycle, aber beide arbeiten unabhängig voneinander, um die Ausgabe als Bewegungszyklus zu erhalten.

Wie erstelle ich benutzerdefinierte Klassen und Objekte in VBA?
Betrachten wir ein Beispiel für die Mobiltelefone von drei verschiedenen Unternehmen, Apple, Samsung und Nokia. Betrachten Sie die beliebten und neu eingeführten Mobiltelefone dieser Unternehmen, nämlich iPhone X, Samsung S8 und Nokia 7+.
Wir werden einige wichtige Funktionen für diese Mobiltelefone vergleichen, z. B. Marke, Modell, Bildschirmgröße, Kameratyp und Ladetyp. Dies sind grundsätzlich wichtige Merkmale auf dieser Basis. Wir vergleichen meistens jedes Handy. Im Folgenden haben wir die oben diskutierten Parameter in einem Diagramm abgebildet.

Wählen Sie im VBA-Fenster im Menü Einfügen das Klassenmodul aus, wie unten gezeigt.

Das Fenster des Klassenmoduls beginnt mit Option Explicit ( siehe unten).

Die Option Explicit stellt sicher, dass Variablen deklariert werden müssen, bevor sie verwendet werden. Wenn wir keine Variable deklarieren und verwenden, gibt das System einen Fehler aus. Definieren Sie jetzt in der Klasse alle besprochenen Parameter für die Messung von Mobiltelefonen mit der Öffentlichkeit . Dadurch können diese definierten Parameter jederzeit und überall ohne Einschränkungen verwendet werden.
Code:
Option Explicit 'Liste der Eigenschaften Öffentliche Marke als Zeichenfolge Öffentliches Modell als Zeichenfolge Öffentliche Bildschirmgröße als Zeichenfolge Öffentlicher Kameratyp als Zeichenfolge Öffentliches ChargerType als Zeichenfolge

Jetzt werden wir einen anderen Vorgang, Funktionen und Merkmale eines Mobiltelefons hinzufügen, z. B. Starten eines Telefons, Ausschalten des Telefons, Abspielen von Musik, Laden des Akkus usw. mit Unterkategorie für jede Funktion, wie unten gezeigt. Fügen Sie in jede Unterkategorie-Schleife ein Meldungsfeld ein, damit wir sehen können, welche Methoden derzeit ausgeführt werden.
Code:
'Mögliche Techniken Sub MobileStarts () MsgBox "Mobile wird eingeschaltet" End Sub
Sub MobileOff () MsgBox "Mobile wird ausgeschaltet" End Sub
Sub PlayMusic () MsgBox "Audiosystem funktioniert derzeit" End Sub
Sub BatteryCharge () MsgBox "Ladegerät ist derzeit angeschlossen" End Sub

Damit ist die Erstellung der Klasse abgeschlossen. Bevor wir fortfahren, wird empfohlen, den Namen des Klassenmoduls zu ändern. Wählen Sie einen beliebigen Namen gemäß Ihren Anforderungen, da wir ihn in " Mobil" ändern .

Jetzt schreiben wir einen Code in ein Modul, in dem wir die Merkmale und Funktionen jeder Mobiltelefonmarke sehen und vergleichen. Dazu müssen wir ein Modul hinzufügen, indem wir wie gezeigt im Menü Einfügen dorthin gehen.

Wir werden ein neues Modul öffnen, in dem Option Explicit aktiviert ist, während wir arbeiten und eine Klasse erstellen. Beginnen Sie nun mit dem Schreiben der Unterkategorie im Namen der ausgeführten Funktionen, wie unten gezeigt.

Wir können den Namen des Moduls genauso ändern wie für Class. Dies hilft uns, die zusammengehörige Identität des erstellten VBA-Codes beizubehalten. Dies kann in den Eigenschaftenfenstern erfolgen, wie unten gezeigt.

Wir haben bereits verschiedene Merkmale, Funktionen und Methoden aller Markenhandys definiert. Definieren wir nun 3 Variablen in einem beliebigen Namen (vorzugsweise im Namen der Mobiltelefonmarke) und weisen sie Mobile zu. Beginnen wir zuerst mit dem iPhone, wie unten gezeigt.

Machen Sie dasselbe für den Rest der Mobiltelefonmarke, wie unten gezeigt.

Auf diese Weise weisen wir die erstellte Klasse jeder Dimensionsvariablen der Marke Mobile zu. Führen Sie nun für jede Marke den gleichen Vorgang zum Zuweisen der Klasse durch .
Jetzt müssen wir alle Funktionen des Mobiltelefons und seinen Wert zuweisen. Verwenden Sie dazu die Set- Funktion und weisen Sie sie einem neuen Handy zu, wie unten gezeigt.

Öffnen Sie nun die With-End-Schleife für das iPhone. Hier definieren wir jedes Attribut des Mobiltelefons.

Wie wir sehen können, haben wir alle definierten Funktionen der iPhone-Marke von Class mit bestimmten Werten als String zugewiesen.
Machen Sie dasselbe auch für die Marken Samsung und Nokia.

Jetzt werden wir DebugPrint verwenden , um die Informationen im unmittelbaren Fenster zu drucken. Es ist nützlich, wenn wir eine bestimmte Variable in einer Codezeile sehen möchten. Wir werden für jede Mobile-Marke verschiedene Funktionen auswählen, wie unten gezeigt.

Nun weisen Sie die MobileStarts und MobileOff funktionale Operationen, die wir in der Klasse zu jedem der mobilen Marken in dem gleichen Modul zusammen mit der Message - Box definiert. Sie können das Meldungsfeld hier überspringen.

Damit ist die Zuordnung der Klasse zum Modul abgeschlossen. Kompilieren Sie nun den Code und führen Sie ihn mit der Taste F5 aus. Wir werden die Nachricht jeder mobilen Marke sehen, wie unten gezeigt.

Wenn Sie nun wissen möchten, welche Variablen und Funktionen welche Werte enthalten, öffnen Sie dazu das lokale Fenster auf der Registerkarte "Ansicht", um die Details beim Kompilieren des Codes wie unten gezeigt abzurufen.

Der folgende Code dient als Referenz.
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.
- Zum Testen können Sie beim Erstellen von Klassen weniger Techniken oder Funktionen verwenden. Dies kann später geändert werden, wenn wir weitere Produktfunktionen und -techniken hinzufügen möchten.
- Berücksichtigen Sie immer ähnliche oder gleiche Funktionen, wenn Sie die Klasse beenden und sie einem Modul zuweisen. Dies hilft uns beim Vergleich der Eigenschaften verschiedener Produkte.