VBA Class Module und wie man sie benutzt
Was ist eine Klasse in VBA?
Eine Klasse ist eine Blaupause für ein zu erstellendes Objekt. Eine Klasse selbst macht nichts anderes als Klassen. Sie können mehrere identische Objekte erstellen, die Operationen ausführen oder als Datenressource verwendet werden können.
Im wirklichen Leben ist das Modell (Design und Funktionalität) eines Autos eine Klasse und das Auto selbst ist ein Objekt dieser Klasse. In der Klasse definieren wir, was das Auto enthält und was es kann. Zum Beispiel hat ein Auto 4 Räder, 5 Gänge, Lenkrad usw. Dies sind Attribute / Eigenschaften.
Wir definieren auch, was ein Auto tun kann, z. B. vorwärts, rückwärts, drehen usw. Dies sind Funktionen der Fahrzeugklasse. Ein mit der Fahrzeugklasse erstelltes Autoobjekt verfügt über alle diese Eigenschaften. Wenn Sie ein Auto mit 5 Rädern definieren, hat ein mit dieser Klasse erstelltes Auto 5 Räder. Du verstehst, worum es geht.
Genug der Theorie, jetzt wollen wir sehen, wie Sie ein Klassenmodul in VBA verwenden können.
Verwenden des Excel VBA-Klassenmoduls
Während Sie in VBA arbeiten, müssen Sie Range („A1“) verwendet haben. Wählen Sie. Der Bereich ist in VBA eine vordefinierte Klasse. Die Auswahl ist eine der Funktionen der Range-Klasse, die den angegebenen Bereich auswählt. In ähnlicher Weise ist Debug eine Klasse in VBA und print und assert sind seine Methoden. Arbeitsblätter, Arbeitsmappen, Bereiche usw. sind VBA-Klassen, die wir in unseren Subs verwenden.
Erstellen Sie Ihre eigene Klasse
Zuerst müssen wir ein Klassenmodul in VBA hinzufügen. Drücken Sie die Tastenkombination ALT + F11, um den Excel VBA-Editor zu öffnen.
-
Klicken Sie mit der rechten Maustaste auf den Projektexplorer. Bewegen Sie den Cursor auf Einfügen → Klassenmodul. Klick es an. Das Gleiche können Sie über das Menü Einfügen tun.
-
Die Klasse wird dem Ordner „Klassenmodul“ hinzugefügt. Der Standardname lautet class1, class2 usw. Sie können den Klassennamen im Eigenschaftenfenster ändern. Nennen wir unsere Klasse „Willkommen“.
Lassen Sie uns nun einige Attribute zu unserer Klasse hinzufügen. Da diese Attribute der Öffentlichkeit zugänglich sein sollen, verwende ich den Eingabehilfenoperator * public.
Public name As String Public var1 As Integer Public var2 As Integer
-
Fügen wir dieser Klasse nun eine Funktion hinzu. Ich möchte eine Funktion, die Hallo sagt! an den Benutzer. Fügen Sie dazu ein Sub hinzu und nennen Sie es „HiTo“.
Sub sayHiTo(user As String) name = user MsgBox ("Hi! " & name) End Sub
-
Verwenden wir jetzt die Klasse in einem Modul. Fügen Sie ein neues Modul ein, wenn Sie keines haben. Schreibe ein Sub. Ich habe meinen Untertest benannt.
Sub test() Dim wc As New Welcome 'Declared and initialized Welcome object wc.sayHiTo ("Jack") 'used sayHiTo method of Welcome Object. End Sub
-
Führen Sie diesen Untertest mit der Taste F5 durch. Es wird „Hi! Jack“ in der Excel-Arbeitsmappe angezeigt.
Wie funktioniert es?
In Sub Test haben wir ein Objekt „wc“ von Welcomeclass erstellt. Ein Objekt wird in VBA auf zwei Arten erstellt. Wir führen den Code aus. Test sub erstellt ein Objekt wc der Welcome-Klasse. Dieses Objekt verfügt über alle Eigenschaften der Welcome-Klasse. Wir verwenden die sayHiTo-Methode der Welcome-Klasse, um dem Benutzer Hallo zu sagen.
Objekterstellung in Excel VBA
-
.. Sofortige Erstellung Bei der sofortigen Erstellung erstellen wir ein Objekt, während wir das Objekt mit dem Schlüssel „Neu“ deklarieren. In unserem obigen Beispiel haben wir die sofortige Erstellung verwendet.
Dim wc As New Welcome
{leer} 2. Verzögerte Erstellung Bei der verzögerten Erstellung deklarieren wir zunächst nur das Objekt. Wir verwenden das Schlüsselwort „new“ nicht. Um das Objekt verwenden zu können, müssen wir es mit dem Schlüsselwort „new“ initialisieren.
Sub test() Dim wc As Welcome 'wc.sayHiTo ("Jack") 'generates error since wc is not initialised yet 'initialising object Set wc = New Welcome wc.sayHiTo ("Cory") 'this will work. End Sub
Zugriff auf Variablen einer Klasse
In den obigen Beispielen haben wir öffentliche Variablen für die Klasse verwendet, aber es ist falsch zu üben. Wir sollten die Verwendung öffentlicher Variablen in einer Klasse vermeiden.
Die Frage ist nun, wie wir auf Variablen der Klasse zugreifen würden. Früher haben wir eine Unterroutine verwendet, um auf den Namen zuzugreifen, aber VBA-Klassen bieten Eigenschaften, mit denen systematisch private Variablenwerte der Klasse aktualisiert und abgerufen werden. Die Eigenschaften sind eleganter als Unter- oder Funktionen zum Aktualisieren und Zugreifen auf private Variablen. Mal sehen wie.
Syntax der Klasseneigenschaft
Private name As String Private var1 As Integer Private var2 As Integer Property Let MyName(nm As String) name = nm End Property Property Get MyName() As String MyName = name End Property
Verwenden wir sie in einem Modul.
Sub test() 'creating class object Dim wc As New Welcome Dim wc1 As New Welcome 'using properties wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1.MyName End Sub
Wenn Sie dieses Test-Sub ausführen, werden zwei Namen für zwei Objekte der Klasse „Willkommen“ gedruckt.
Wie unterscheiden sich Eigenschaften von Sub und Funktionen
Beachten Sie im obigen Beispiel, dass wir die MyName-Eigenschaft als Variable verwendet haben. Wir haben den Wert der Variablen „Name“ initialisiert, indem wir wc.MyName = „assdf“ geschrieben haben. Diese Befehlszeile mit dem Namen PropertyProperty Get MyName () As String. Wir haben in Klammern keinen Wert übergeben, wie wir es am Anfang getan haben.
In ähnlicher Weise haben wir zum Drucken der Werte der Variablen „Name“ commandDebug.Print wc.MyName verwendet. Ist das nicht so einfach wie die normale Variableninitialisierung? Der einzige Unterschied besteht darin, dass Sie im Immobiliensegment eine ganze Menge tun können. Sie setzen Datenvalidierung, Berechnung, Kommunikation usw. ein und der Benutzer sieht nur das Ergebnis.
Ein weiterer Unterschied besteht darin, dass wir den gleichen Namen der Eigenschaft verwenden können, um * Teil zu lassen und zu erhalten. Dies macht es einfacher und weniger verwirrend.
Also ja Leute, dies war ein einfaches Beispiel für ein Klassenmodul in Excel VBA.
Dies ist nur die Spitze des Eisbergs. In diesem Thema steckt viel Saft, den wir in späteren Artikeln untersuchen werden. Wir werden jeden von ihnen auf einfachste Weise einzeln untersuchen. Ich hoffe, ich war erklärend genug, um Ihnen das verständlich zu machen. Wenn Sie Zweifel an diesem Thema oder einem anderen Excel-VBA-Thema haben, erwähnen Sie dies im Kommentarbereich unten.
Verwandte Artikel:
`link: / modules-class-modules-in-vba-einfügen-eines-neuen-moduls-aus-einer-datei-mit-vba-in-microsoft-excel [Importieren eines Moduls aus einer Datei mit VBA in Microsoft Excel] `| Erfahren Sie, wie Sie mit VBA das gesamte Modul aus einer anderen Datei importieren.
link: / modules-class-modules-in-vba-erstelle-ein-neues-modul-mit-vba-in-microsoft-excel [Erstelle ein neues Modul mit VBA in Microsoft Excel]
| Sie können ein Modul verwenden, um ein anderes Modell in VBA zu erstellen. Dies kann Ihnen helfen, den zusätzlichen Aufwand zu minimieren.
link: / modules-class-modules-in-vba-add-a-procedure-to-a-module-using-vba-in-microsoft-excel [Füge einem Modul mit VBA in Microsoft Excel eine Prozedur hinzu]
| Verwenden Sie diesen VBA-Code, um Modulen automatisch Prozeduren hinzuzufügen.
Beliebte Artikel:
link: / Tastatur-Formel-Verknüpfungen-50-Excel-Verknüpfungen-zur-Steigerung-Ihrer-Produktivität [50 Excel-Verknüpfungen zur Steigerung Ihrer Produktivität]
| Werden Sie schneller bei Ihrer Aufgabe. Mit diesen 50 Verknüpfungen können Sie noch schneller in Excel arbeiten.
link: / formeln-und-funktionen-einführung-der-vlookup-funktion [Die VLOOKUP-Funktion in Excel]
| Dies ist eine der am häufigsten verwendeten und beliebtesten Funktionen von Excel, mit der Werte aus verschiedenen Bereichen und Tabellen gesucht werden. link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]
| Zählen Sie Werte mit Bedingungen, die diese erstaunliche Funktion verwenden.
Sie müssen Ihre Daten nicht filtern, um einen bestimmten Wert zu zählen. Die Countif-Funktion ist wichtig, um Ihr Dashboard vorzubereiten.
link: / excel-formel-und-funktion-excel-sumif-funktion [Verwendung der SUMIF-Funktion in Excel]
| Dies ist eine weitere wichtige Funktion des Dashboards. Auf diese Weise können Sie Werte unter bestimmten Bedingungen zusammenfassen.