<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://vba-wiki.net/index.php?action=history&amp;feed=atom&amp;title=Objekte_beherrschen</id>
	<title>Objekte beherrschen - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="http://vba-wiki.net/index.php?action=history&amp;feed=atom&amp;title=Objekte_beherrschen"/>
	<link rel="alternate" type="text/html" href="http://vba-wiki.net/index.php?title=Objekte_beherrschen&amp;action=history"/>
	<updated>2026-06-13T13:25:29Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in VBA-wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://vba-wiki.net/index.php?title=Objekte_beherrschen&amp;diff=760&amp;oldid=prev</id>
		<title>Pwania am 28. Januar 2023 um 00:39 Uhr</title>
		<link rel="alternate" type="text/html" href="http://vba-wiki.net/index.php?title=Objekte_beherrschen&amp;diff=760&amp;oldid=prev"/>
		<updated>2023-01-28T00:39:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 28. Januar 2023, 00:39 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:vba-wiki]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Objekte werden uns von den Anwendungen (Word, Excel, PowerPoint etc.) zur Verfügung gestellt oder können vom Entwickler selbst durch eigene Klassen erstellt werden.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Objekte werden uns von den Anwendungen (Word, Excel, PowerPoint etc.) zur Verfügung gestellt oder können vom Entwickler selbst durch eigene Klassen erstellt werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pwania</name></author>
	</entry>
	<entry>
		<id>http://vba-wiki.net/index.php?title=Objekte_beherrschen&amp;diff=349&amp;oldid=prev</id>
		<title>Pwania: Die Seite wurde neu angelegt: „Objekte werden uns von den Anwendungen (Word, Excel, PowerPoint etc.) zur Verfügung gestellt oder können vom Entwickler selbst durch eigene Klassen erstellt…“</title>
		<link rel="alternate" type="text/html" href="http://vba-wiki.net/index.php?title=Objekte_beherrschen&amp;diff=349&amp;oldid=prev"/>
		<updated>2018-10-10T15:16:55Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Objekte werden uns von den Anwendungen (Word, Excel, PowerPoint etc.) zur Verfügung gestellt oder können vom Entwickler selbst durch eigene Klassen erstellt…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Objekte werden uns von den Anwendungen (Word, Excel, PowerPoint etc.) zur Verfügung gestellt oder können vom Entwickler selbst durch eigene Klassen erstellt werden.&lt;br /&gt;
&lt;br /&gt;
== Generelles zu Objekten ==&lt;br /&gt;
=== Deklaration ===&lt;br /&gt;
&lt;br /&gt;
Objektvariablen werden wie jede andere Variable deklariert:&lt;br /&gt;
&lt;br /&gt;
 Dim myObject as Whatever&lt;br /&gt;
&lt;br /&gt;
=== Instanziierung ===&lt;br /&gt;
&lt;br /&gt;
Bevor eine Objektvariable verwendet werden kann, muss sie instanziiert werden. Hierbei erhält die Variable die Adresse des Objektes. Dies erfolgt mit der &amp;#039;Set&amp;#039;-Anweisung:&lt;br /&gt;
&lt;br /&gt;
 Set myObject = Whatever&lt;br /&gt;
&lt;br /&gt;
Anwendungsobjekte stellen ein tatsächlich existierende Elemente (eine Anwendung, ein Dokument, einen Absatz, eine Tabellenzelle, ein Rechteck usw.) dar. Deshalb erfolgt deren Instanziierung &amp;#039;&amp;#039;&amp;#039;NICHT&amp;#039;&amp;#039;&amp;#039; mit dem Schlüsselwort &amp;#039;New&amp;#039;!&lt;br /&gt;
&lt;br /&gt;
 Set docDocument = ActiveDocument&lt;br /&gt;
&lt;br /&gt;
Eigene Klassenobjekte und Dialoge (UserForms) hingegen müssen vor ihrem Einsatz neu erstellt werden, weil sie noch nicht existieren und daher noch keine Objektadresse besitzen. Deshalb erfolgt hierbei die Instanziierung mit dem Schlüsselwort &amp;#039;New&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
 Set myDialog = New frmDialog&lt;br /&gt;
&lt;br /&gt;
Wenn eine bestehende Instanz übernommen wird, also das Objekt von einer Variablen in eine andere Objektvariable kopiert wird, entfällt auf jeden Fall das Schlüsselwort &amp;#039;New&amp;#039;!&lt;br /&gt;
&lt;br /&gt;
 Set myCopy = myOriginal&lt;br /&gt;
&lt;br /&gt;
=== Objekte prüfen ===&lt;br /&gt;
&lt;br /&gt;
Die Prüfung, ob eine Objektvariable schon instanziiert wurde, erfolgt mit dem &amp;#039;Is Nothing&amp;#039;-Vergleich:&lt;br /&gt;
&lt;br /&gt;
 If myObject Is Nothing Then Set myObject = New clsObject&lt;br /&gt;
&lt;br /&gt;
=== Objektreferenzen ausdrücklich zerstören ===&lt;br /&gt;
&lt;br /&gt;
Objektreferenzen haben den hier beschriebenen Geltungbereich: [[Variablen#Geltungsbereich, Lebensdauer und Formen der Deklaration|Variablen: Geltungsbereich, Lebensdauer und Formen der Deklaration]].&lt;br /&gt;
&lt;br /&gt;
Sie werden beim Verlassen ihres Geltungsraumes automatisch zerstört. Wenn Sie eine Objektreferenzen explizit zerstören möchten (oder müssen), erfolgt die wie hier beschrieben:&lt;br /&gt;
&lt;br /&gt;
 Set myObject = Nothing&lt;br /&gt;
&lt;br /&gt;
Dies kann zum Beispiel sinnvoll sein, wenn Sie einen Dialog wegen einer Fehleingabe neu aufrufen müssen. Wenn Sie &amp;#039;Set myDialog = Nothing&amp;#039; einsetzen, sind Sie sicher, dass die vorgehende Instanz des Dialogs tatsächlich nicht mehr existiert.&lt;br /&gt;
&lt;br /&gt;
== Methoden und Eigenschaften ==&lt;br /&gt;
&lt;br /&gt;
Die Methoden eines Objektes entsprechen ausführbaren Befehlen, welche am Objekt ausgeführt werden können. Die Eigenschaften entsprechen Einstellungen, welche das Objekt betreffen.&lt;br /&gt;
&lt;br /&gt;
Die Methoden und Eigenschaften eines Objektes sprechen Sie an, indem Sie das Objekt selbst (bei Anwendungsobjekten) oder die Objektvariable mit einem Punkt abschließen und dann die Eigenschaft bzw. die Methode benennen. Der VBA-Editor bietet Ihnen hierzu die Auswahl der Möglichkeiten als Liste an:&lt;br /&gt;
&lt;br /&gt;
[[Datei:CellProps.png]]&lt;br /&gt;
&lt;br /&gt;
Hierbei werden die Methoden wie ein fliegender, grüner Ziegelstein (oder Radiergummi?) und die Eigenschaften wie eine kleine Tabelle, auf die ein Finger zeigt, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Weiterführende Anwendungsobjekte ===&lt;br /&gt;
&lt;br /&gt;
Eigenschaften können selbst auf weitere (Unter-)Objekte verweisen, welche wiederum eigene Eigenschaften und Methoden besitzen:&lt;br /&gt;
&lt;br /&gt;
    Application.ActiveDocument.Words(2).Font.Bold = True&lt;br /&gt;
&lt;br /&gt;
=== Weiterführende Klassenobjekte ===&lt;br /&gt;
&lt;br /&gt;
Weiterführende Objekte können auch von eigenen Klassen angeboten werden, indem die Eltern-Klasse eine Funktion anbietet, welche als Rückgabewert eine weitere Klasse verwendet:&lt;br /&gt;
&lt;br /&gt;
In der Klasse &amp;#039;clsToolsString&amp;#039; finden wir folgende Funktion:&lt;br /&gt;
&lt;br /&gt;
 Public Function ListTools() As clsToolsList&lt;br /&gt;
    &lt;br /&gt;
     Set ListTools = New clsToolsList&lt;br /&gt;
 End Function&lt;br /&gt;
&lt;br /&gt;
Somit kann über die &amp;#039;StringTools&amp;#039; direkt auf die verwandte &amp;#039;ListTools&amp;#039; zugegriffen werden:&lt;br /&gt;
&lt;br /&gt;
 strList = Tools.StringTools.ListTools.AddItemToList(strList, &amp;quot;New Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;Tools&amp;#039; ist der Name des Moduls, in dem sich die Funktion &amp;#039;StringTools&amp;#039; befindet, deren Rückgabewert die Klasse &amp;#039;clsToolsString&amp;#039; ist&lt;br /&gt;
* In der Klasse &amp;#039;clsToolsString&amp;#039; befindet sich eine Funktion &amp;#039;ListTools&amp;#039; mit dem Rückgabewert &amp;#039;clsToolsList&amp;#039;&lt;br /&gt;
* In der Klasse &amp;#039;clsToolsList&amp;#039; befindet sich die Funktion &amp;#039;AddItemToList&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Kurzschreibweise mit With ===&lt;br /&gt;
&lt;br /&gt;
Sie können die Zuweisung mehrerer Eigenschaften eines Objektes auf folgende Weise übersichtlicher gestalten:&lt;br /&gt;
&lt;br /&gt;
    With ActiveDocument.Words(2).Font&lt;br /&gt;
        .Bold = False&lt;br /&gt;
        .Italic = False&lt;br /&gt;
        .Underline = False&lt;br /&gt;
        .SmallCaps = False&lt;br /&gt;
        &amp;#039;...&lt;br /&gt;
    End With&lt;br /&gt;
&lt;br /&gt;
Nach &amp;#039;With&amp;#039; wird das übergeordnete Objekt angegeben, hier die Schriftart des zweiten Wortes im aktuellen Dokument. Innerhalb des With-Blocks kann dann die Angabe des übergeordneten Objektes entfallen. Der With-Block wird dann mit &amp;#039;End With&amp;#039; abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
Ausgeschrieben würde die Zuweisung wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
    ActiveDocument.Words(2).Font.Bold = False&lt;br /&gt;
    ActiveDocument.Words(2).Font.Italic = False&lt;br /&gt;
    ActiveDocument.Words(2).Font.Underline = False&lt;br /&gt;
    ActiveDocument.Words(2).Font.SmallCaps = False&lt;br /&gt;
    &amp;#039;...&lt;br /&gt;
&lt;br /&gt;
With-Blöcke können beliebig tief verschachtelt werden:&lt;br /&gt;
&lt;br /&gt;
    With ActiveDocument.Words(2).Font&lt;br /&gt;
        .Bold = False&lt;br /&gt;
        .Italic = False&lt;br /&gt;
        .Underline = False&lt;br /&gt;
        .SmallCaps = False&lt;br /&gt;
        With .Borders&lt;br /&gt;
            .Enable = True&lt;br /&gt;
            .Shadow = True&lt;br /&gt;
        End With&lt;br /&gt;
    End With&lt;/div&gt;</summary>
		<author><name>Pwania</name></author>
	</entry>
</feed>