Im VBA Editor sehen Sie im Projekt-Explorer, wenn Sie ein Dokument geöffnet haben ode rein leeres Dokument erstellt wurde, das Projekt z. B. Dokument1. Darunter finden Sie den Eintrag ThisDocument. Das ist das Klassenmodul für Ihr Dokument mit einigen vorgefertigten Funktionen. Vba klassenmodul beispiel program. Sie haben nun bereits im Codefenster ein erstes Objekt zur Auswahl: Nach dem Sie das Document ausgewählt haben, stehen Ihnen im rechten Kombinationsfeld bereits einige Ereignisse zur Verfügung: Bei der Auswahl wird bereits die Prozedur Document_New angelegt. Diser Code wird dann immer angelegt, wenn ein neues Dokument erstellt wird. Sinnvoller für einfache Dokumente ist hier das Document_Open, denn dieser Codeteil wird immer ausgeführt, wenn das gespeicherte Dokument geöffnet wird. So können Sie auch vor dem Schließen des Dokumentes Code ausführen lassen. Das Document_New kann nur bei Dokumentvorlagen sinnvoll sein. An dieser Stell sei aber darauf hingewiesen, das es zusätzlich in Word noch die automatischen Makros gibt.
- Vba klassenmodul beispiel von
- Vba klassenmodul beispiel full
- Vba klassenmodul beispiel
- Vba klassenmodul beispiel auto
Vba Klassenmodul Beispiel Von
In dieser Funktion werden die gesetzten Parameter verarbeitet. In Zeile 85 bis 122 ist die Funktion Wandgroesse beschrieben. Diese Funktion ist ähnlich wie Zimmergroesse. Nur es wird hier ein Parameter übergeben, der bestimmt, welcher Wert berechnet werden soll. Das würde praktisch natürlich die vorherige Funktion Zimmergroesse überflüssig machen. Dieser Code wird in ein Klassenmodul kopiert und clsWohnung benannt. Sie können natürlich auch einen anderen Namen verwenden, dann müssen Sie bei den Deklarationen den Namen entsprechend ändern. Das Klassenmodul wird wie folgt in ein Modul eingesetzt:
Private objWohnung As clsWohnung
Sub MeineWohnung()
Set objWohnung = New clsWohnung
With objWohnung. RaumName = "Schlafzimmer". RaumBreite = 4. 93. RaumLaenge = 3. 51. RaumHoehe = 2. 5. RaumFarbe = "Blau". Vba klassenmodul beispiel full. RaumEinheit = m
MsgBox. Zimmergroesse
MsgBox. Wandgroesse(Boden)
MsgBox. Wandgroesse(kurz)
MsgBox. Wandgroesse(lang)
MsgBox. Einheit
End With
In Zeile 3 wird der Objektvariablen das neue Klassenmodul als Typ zugewiesen.
Vba Klassenmodul Beispiel Full
Es handelt sich um ein einfaches Beispiel für ein Klassenmodul, dass verschiedene Arten von Eigenschaften und Methoden darstellen soll. Beschreibung des Klassenmoduls: Es können Werte für einen Raum einer Wohnung / Haus festgelegt werden. Zu diesen Werten gehören Breite, Länge, Höhe, Name und Farbe des Raumes. Wenn diese Werte festgelegt sind, kann man Berechnungen über Wandgröße und Raumgröße durchführen lassen. Somit kann z. B. der Farbbedarf eines Raumes ermittelt werden. Besonderheiten des Klassenmoduls: Es gibt verscheidene Eigenschaften. Breite, Länge, Höhe, Name und Farbe des Raumes sind sowohl schreibbar wie lesbar. Die Eigenschaft Raumeinheit ist nur schreibbar aber nicht lesbar. Die Eigenschaft Einheit ist schreibgeschützt und somit nur lesbar. Die Methode Zimmergroesse ist ohne Parameter aufzurufen. Die Methode Wandgroesse ist mit einer Festlegung der Wand bzw. des Fußßbodens (Raumgröße) aufrufbar. Einführung: Was ist ein Klassenmodul und was habe ich darunter zu verstehen? - MS-Office-Forum. Der Parameter muss angegeben werden. Es werden beim Initialisieren des Klassenmoduls Standardwerte gesetzt.
Vba Klassenmodul Beispiel
Im Allgemeinen ist übrigens Function sinnvoller, weil man einen Rückgabewert
definieren kann, der z. B. angibt, ob die Prozedur erfolgreich ausgeführt wurde. Online - Excel Programmierung VBA Makro: Klassen [2] - Eigenschaften in Klassen. Fügen wir also in unser Klassenmodul Auto folgende Prozedur ein:
Public Function hupen(Optional Sekunden As Integer = 2) As Boolean
MsgBox Sekunden
hupen = True
End Function
Damit haben wir eine Methode erstellt, die True zurückgibt, wenn
erfolgreich gehupt wurde. Die Hupe funktioniert also. Zurück in einem Standardmodul können wir die Methode wie folgt aufrufen:
Public Sub Autos()
Dim Familienkutsche As New Auto
1
End Sub
IntelliSense zeigt uns nach dem Punkt hinter Familienkutsche in der
Auswahlliste hupen
an. Ob wir den Rückgabewert der Methode im weiteren Code tatsächlich auswerten
wollen, ist uns natürlich freigestellt.
Vba Klassenmodul Beispiel Auto
Es sind nur die Deklarationen der Enum Werte auf öffentlich gesetzt und daher auch außerhalb des Klassenmoduls verfügbar. Die Enum-Werte sind vordefinierte Werte für einen Variablentyp. Wenn Sie die Variablen diesen Typ zuweisen (wie in Zeile 24), können Sie die hier deklarierten Werte als Inhalte der Variablen (oder Funktionen) verarbeiten. In Zeile 24 bis 26 wird die Eigenschaft RaumEinheit deklariert. Dies Eigenschaftz ist nicht lesbar, da keine Property Get Anweisung zu dieser Funktion exisitert. In Zeile 28 bis 30 ist die schreibgeschützte Eigenschaft Einheit deklariert. Hier fehlt die Deklaration mit Property Let oder Property Set. Klassenmodule | Herbers Excel-Server. So wird der Schreibschutz hergestellt. Alle weiteren Eigenschaften werden von Zeile 32 bis Zeile71 deklariert. Hier gibt es sowohl eine Funktion Property Get wir eine Property Let Anweisung. Daher kann die Eigenschaft gelesen und neu gesetzt werden. In Zeile 75 bis 83 wird die Methode Zimmergroesse als Funktion beschrieben. Die Funktion muss als Public deklariert werden, damit sie später auch verarbeitet werden kann.
Hallo,
falls mit richtiger Vererbung dieses Schemata gemeint ist... (v=vs. 90)... muss ich leider mitteilen, dass das in VBA nicht möglich ist. VBA selbst ist keine Objektorientierte Sprache im Klassischen Sinne. Vba klassenmodul beispiel von. Man kann zwar schon einzelne Klassen definieren. Diese sind allerdings von überall aus zugreifbar. Es ist nicht möglich, eine Klasse in eine andere Klasse zu kapseln. Daher fehlen auch überschribungs-Operatoren wie "Overrides". Um eine Klasse vererben zu können, muss in der abgeleiteten Klasse alle Objekte nochmals definieren bzw. die Aufrufe weiterleiten. Bei einer Änderung der Parameter müssen dann wiederum alle anderen Klassen, die auf das geänderte Objekt zugreifen, angepasst werden.