Visual Basic Applications (VBA) ist eines der Tools, mit denen Sie in Microsoft Excel benutzerdefinierte Makros erstellen und Prozesse automatisieren können. Das Erstellen von Klassen in Excel VBA ist eine leistungsstarke Möglichkeit, Code zu organisieren und zu strukturieren und die Wiederverwendung zu verbessern.
Klassen sind Datentypen, die Eigenschaften (Variablen) und Methoden (Funktionen) enthalten, die im Code anderer Objekte verwendet werden können. Wenn Sie eine Klasse in VBA Excel erstellen, definieren Sie ihre Eigenschaften und Methoden und erstellen dann eine Instanz dieser Klasse, um sie in Ihrem Code zu verwenden.
Der Hauptschritt beim Erstellen einer Klasse besteht darin, ein Klassenmodul im visuellen VBA-Codeeditor von Excel zu erstellen. Sie können die Eigenschaften einer Klasse mit einem Schlüsselwort definieren Public oder Private vor dem Deklarieren einer Variablen. Stichwort Public ermöglicht anderen Objekten den Zugriff auf Klasseneigenschaften und das Schlüsselwort Private beschränkt den Zugriff nur innerhalb der Klasse.
Was ist eine Klasse in VBA Excel und ihre Vorteile
In Visual Basic für Applikationen (VBA) ist eine Excel-Klasse ein Objekt, das Eigenschaften, Methoden und Ereignisse enthält. Mithilfe von Klassen können Sie Code organisieren und strukturieren sowie Objekte mit bestimmten Eigenschaften und Funktionen erstellen.
Zu den Hauptvorteilen der Verwendung von Klassen in Excel VBA gehören:
1. Code vereinfachen und wiederverwenden:
Mit Klassen können Sie Module mit Code erstellen, der in verschiedenen Teilen eines Projekts wiederverwendet werden kann. Dies vereinfacht die Entwicklung, minimiert die Duplizierung von Code und erleichtert die Wartung und Änderung in Zukunft.
2. Isolation von Daten und Funktionen:
Mit Klassen können Sie den Zugriff auf bestimmte Daten und Funktionen einschränken, ihren Gültigkeitsbereich verwalten und interne Implementierungen vor externem Code verbergen. Dies verbessert die Sicherheit und den Datenschutz und erleichtert die Projektwartung.
3. Einfache Fehlerbehebung:
Wenn ein Fehler in einer Klasse auftritt, kann er nur innerhalb der Klasse leicht nachverfolgt und korrigiert werden, ohne andere Teile des Projekts zu beeinflussen. Dies vereinfacht den Debugging- und Fehlerbehebungsprozess erheblich.
4. Verbesserung der Lesbarkeit und der Codeunterstützung:
Klassen ermöglichen es Ihnen, Code in logische Blöcke zu organisieren, wodurch die Lesbarkeit und das Verständnis verbessert werden. Darüber hinaus trägt die Verwendung von Klassen zu einer besseren Strukturierung des Projekts bei und erleichtert das Hinzufügen neuer Funktionen oder das Ändern vorhandener Funktionen.
Im Allgemeinen sind Klassen in Excel VBA ein leistungsfähiges Werkzeug, um Code zu organisieren, seine Effizienz zu verbessern und die Projektwartung zu erleichtern. Sie ermöglichen es Ihnen, Module mit ihren eigenen Eigenschaften und Funktionen zu erstellen, die Sie entsprechend den spezifischen Anforderungen des Projekts entwerfen und verwenden können.
Erstellen einer neuen Klasse in VBA Excel
Führen Sie die folgenden Schritte aus, um eine neue Klasse in VBA Excel zu erstellen:
| Schritt 1: | Öffnen Sie den VBA-Editor, indem Sie in der Werkzeugleiste auf die Schaltfläche "Entwickler" klicken und "VBA-Editor" auswählen. |
| Schritt 2: | Wählen Sie im VBA-Editor "Einfügen" -> "Modulklasse", um ein neues Klassenmodul zu erstellen. |
| Schritt 3: | Geben Sie einen Namen für Ihre neue Klasse in das Feld Name ein. |
| Schritt 4: | Fügen Sie Ihren Code in das Klassenmodul ein. Hier können Sie Eigenschaften, Methoden und Ereignisse für Ihre Klasse definieren. |
| Schritt 5: | Speichern Sie Ihre Modulklasse, indem Sie auf Datei -> Speichern oder die Tastenkombination Strg+ S klicken. |
Nachdem Sie eine neue Klasse erstellt haben, können Sie sie in Ihrem VBA-Excel-Code verwenden. Um eine Instanz einer Klasse zu erstellen, verwenden Sie das Schlüsselwort "New" und den Namen Ihrer Klasse:
Dim myObject As New YourClassName
Jetzt haben Sie ein neues Objekt Ihrer Klasse mit Zugriff auf seine Eigenschaften und Methoden. Sie können sie verwenden, indem Sie die entsprechenden Routinen aufrufen und auf die Eigenschaften des Objekts zugreifen.
Das Erstellen einer neuen Klasse in VBA Excel ist eine großartige Möglichkeit, Ihren Code zu organisieren und zu strukturieren. Es ermöglicht Ihnen, wiederverwendbare Objekte zu erstellen, wodurch Ihr Code flexibler und wartbarer wird.
Verwenden Sie die oben genannten Schritte, um mit der Verwendung von Klassen in Ihrem Excel-VBA-Code zu beginnen und ihre Effizienz und Lesbarkeit zu verbessern.
Definieren von Klasseneigenschaften in VBA Excel
Sie müssen ein Schlüsselwort verwenden, um eine Klasseneigenschaft zu definieren Property und geben Sie den Eigenschaftsnamen an. Außerdem müssen Sie ein Schlüsselwort angeben Get gibt die Zugriffsmethode an, um den Eigenschaftswert und das Schlüsselwort zu lesen Let/Set gibt den Zugriffsmethoden an, um den Eigenschaftswert zu schreiben.
Der folgende Code definiert beispielsweise eine Klasseneigenschaft mit dem Namen "Name":
Private p_имя As StringPublic Property Get Имя() As StringИмя = p_имяEnd PropertyPublic Property Let Имя(ByVal Value As String)p_имя = ValueEnd Property
In diesem Beispiel definieren wir die private Variable "p_name", die den Wert der Eigenschaft speichert. Dann definieren wir eine Zugriffsmethode zum Lesen des Eigenschaftswerts (Get) und eine Zugriffsmethode zum Schreiben des Eigenschaftswerts (Let).
Der Get-Accessor wird zum Lesen des Eigenschaftswerts verwendet. In diesem Fall gibt es einfach den Wert der Variablen "p_name" zurück.
Der Let-Zugriffsmethode wird verwendet, um den Eigenschaftswert zu schreiben. In diesem Fall weist er der Variablen "p_name" einen Wert zu.
Jetzt können wir die Eigenschaft "Name" von Klassenobjekten verwenden, um den Wert der Variablen "p_name" abzurufen und festzulegen. Zum Beispiel:
Sub Пример()Dim obj As New Классobj.Имя = "Иван"MsgBox obj.ИмяEnd Sub
In diesem Beispiel erstellen wir ein Objekt "obj" der Klasse "Klasse" und setzen den Wert der Eigenschaft "Name" auf "Ivan". Dann zeigen wir den Wert der Eigenschaft in der MsgBox-Nachricht an.
Durch das Definieren von Klasseneigenschaften in VBA Excel können Sie besser mit den Daten und dem Status von Klassenobjekten arbeiten, wodurch der Code verständlicher und unterstützter wird.
Erstellen von Klassenmethoden in VBA Excel
Klassenmethoden in Excel VBA sind Prozeduren oder Funktionen, die bestimmte Aktionen innerhalb eines Objekts einer bestimmten Klasse ausführen. Durch das Erstellen von Methoden können Sie die Logik für die Arbeit mit Daten und Operationen, die für eine bestimmte Klasse spezifisch sind, organisieren.
Jede Klassenmethode muss Argumente als Parameter definieren, damit sie die erforderlichen Informationen zum Ausführen ihrer Aktionen abrufen kann. Verwenden Sie das Schlüsselwort "Sub" für Prozeduren und "Function" für Funktionen, um Klassenmethoden in Excel in VBA zu deklarieren.
Hier ist ein Beispiel für die Deklaration und Definition einer Klassenmethode mit dem Schlüsselwort "Sub":
Private Sub PrintMessage(ByVal message As String)
In diesem Beispiel wird eine Klassenmethode mit dem Namen "PrintMessage" deklariert und definiert. Es nimmt ein einzelnes String-Argument mit dem Namen "message" an und gibt keinen Wert zurück. Innerhalb der Methode wird die Funktion "MsgBox" verwendet, um die übergebene Nachricht im Dialogfeld anzuzeigen.
Betrachten wir nun ein Beispiel für das Deklarieren und Definieren einer Klassenmethode mit dem Schlüsselwort "Function":
Private Function AddNumbers(ByVal a As Integer, ByVal b As Integer) As Integer
AddNumbers = a + b
In diesem Beispiel wird eine Klassenmethode mit dem Namen "AddNumbers" deklariert und definiert. Es nimmt zwei Argumente vom Typ Integer mit den Namen "a" und "b" an und gibt einen Wert vom Typ Integer zurück. Innerhalb der Methode wird eine Additionsoperation der übergebenen Zahlen ausgeführt, und das Ergebnis wird der Variablen "AddNumbers" zugewiesen, die der Rückgabewert der Funktion ist.
Beim Deklarieren und Definieren von Klassenmethoden ist es wichtig, die Verfügbarkeit (private, public usw.), den Rückgabetyp und die Parametertypen sowie die ByVal- oder ByRef-Bezeichner zu berücksichtigen, um Argumente als Wert oder als Referenz zu übergeben.
Durch das Erstellen von Klassenmethoden in VBA Excel können Sie die Logik für die Arbeit mit Daten und Operationen innerhalb eines Klassenobjekts organisieren, wodurch der Code strukturierter und leichter zu verstehen und zu unterstützen ist.
| Stichwort | Die Beschreibung |
|---|---|
| Sub | Schlüsselwort zum Deklarieren und Definieren eines Verfahrens |
| Function | Schlüsselwort zum Deklarieren und Definieren einer Funktion |
| Private | Der Klassenmethode-Zugriffsspezifizierer stammt nur aus dem Code dieser Klasse |
| Public | Zugriffsspezifizierer für eine Klassenmethode von überall im Code |
| ByVal | Parameter für die Übergabe von Argumenten nach Wert |
| ByRef | Argumentübergabespezifizierer als Referenz |
Beispiel für die Verwendung einer Klasse in VBA Excel
Betrachten Sie ein Beispiel für die Verwendung einer Klasse in VBA Excel, um einen einfachen Taschenrechner zu erstellen. Zuerst erstellen wir eine neue Klasse mit dem Namen "Calculator".
Private result As Double
Public Sub SetResult(value As Double)
Public Sub Add(value As Double)
result = result + value
Public Sub Subtract(value As Double)
result = result - value
Public Sub Multiply(value As Double)
result = result * value
Public Sub Divide(value As Double)
result = result / value
Public Function GetResult() As Double
In diesem Beispiel enthält die Calculator-Klasse mehrere Methoden, die grundlegende arithmetische Operationen ausführen. Die Methode "setResult" legt den Anfangswert des Ergebnisses fest, die Methoden "Add", "Subtract", "Multiply" und "Divide" führen die entsprechenden Operationen für das aktuelle Ergebnis aus, und die Methode "GetResult" gibt das aktuelle Ergebnis zurück.
Schreiben wir nun Code in das VBA-Modul, um die erstellte Klasse zu verwenden:
Dim calc As New Calculator
Dim result As Double
MsgBox "Ergebnis: " & result
In diesem Beispiel erstellen wir eine Instanz der "Calculator" -Klasse mit dem Operator "New" und setzen den Anfangswert des Ergebnisses auf 10. Dann rufen wir mehrere Methoden der Klasse auf, um arithmetische Operationen durchzuführen: Addition (Methode "Add") und Multiplikation (Methode "Multiply"). Wir speichern das Ergebnis in der Variablen "result" und geben es in einer Nachricht aus.
Beachten Sie, dass die Verwendung von Klassen es Ihnen ermöglicht, den Code in logischere Blöcke zu organisieren und die Funktionalität wiederzuverwenden. In diesem Beispiel kann die Calculator-Klasse leicht skaliert werden, indem neue Methoden für andere arithmetische Operationen hinzugefügt werden.