Sammlungen verwenden

<< Click to Display Table of Contents >>

Sammlungen verwenden

Die vierte Gruppe von Elementen des Application-Objekts sind Zeiger auf Sammlungen ("Collections").

Sammlungen enthalten, wie der Name schon sagt, eine Ansammlung von gleichartigen Objekten. Es gibt zum Beispiel eine Sammlung Application.Workbooks, die alle geöffneten Dokumente enthält und eine Sammlung Application.RecentFiles mit allen Dateien, die im Datei-Menü aufgelistet werden.

Es existieren zwei standardisierte Arten, um auf Sammlungen zuzugreifen, und PlanMaker unterstützt beide. Die simplere Art ist die Eigenschaft Item, die in jeder Sammlung vorhanden ist:

' Namen des ersten geöffneten Dokuments ausgeben:

MsgBox pm.Application.Workbooks.Item(1).Name

' Schließt das (geöffnete) Dokument "Test.pmdx":

pm.Application.Workbooks.Item("Test.pmdx").Close

Wollen Sie beispielsweise alle geöffneten Dokumente auflisten, lassen Sie sich zuerst mit der standardisierten Eigenschaft Count die Zahl der offenen Dokumente geben und greifen dann sukzessive auf die einzelnen Elemente, also Dokumente, zu:

'Gibt die Namen aller geöffneten Dokumente aus:

For i = 1 To pm.Application.Workbooks.Count

  MsgBox pm.Application.Workbooks.Item(i).Name

Next i

Jede Sammlung besitzt also per Definition die Eigenschaft Count, welche die Zahl der Einträge in der Sammlung ermittelt, und die Eigenschaft Item, mit der Sie gezielt an einen Eintrag in der Sammlung herankommen.

Item akzeptiert als Argument stets die Nummer des gewünschten Eintrags. Soweit es sinnvoll ist, akzeptiert Item als Argument auch andere Argumente, zum Beispiel Dateinamen. Sie haben dies bereits weiter oben gesehen, als wir Item einmal eine Zahl übergeben haben und einmal einen Dateinamen.

Zu den meisten Sammlungen gibt es einen passenden Objekttyp für deren einzelne Elemente. Bei der Sammlung Windows ist ein beispielsweise ein einzelner Eintrag, der von Item zurückgeliefert wird, vom Typ Window – man beachte den Singular! Ein Element der Workbooks-Sammlung heißt Workbook, ein Element der RecentFiles-Sammlung eben RecentFile.

Eleganter Zugriff auf Sammlungen: For Each ... Next

Eine elegantere Methode, hintereinander auf alle Einträge einer Sammlung zuzugreifen, sei hier ebenfalls beschrieben: BasicMaker unterstützt auch die For Each-Anweisung:

' Namen aller geöffneten Dokumente ausgeben

Dim x As Object

For Each x In pm.Application.Workbooks

  MsgBox x.Name

Next x

Das ist gleichbedeutend mit der oben vorgestellten Schreibweise:

For i = 1 To pm.Application.Workbooks.Count

  MsgBox pm.Application.Workbooks.Item(i).Name

Next i

Eigene Eigenschaften und Methoden von Sammlungen

Sammlungen besitzen neben Item und Count gegebenenfalls eigene Eigenschaften und Methoden, mit denen die jeweilige Sammlung verwaltet werden kann. Möchten Sie beispielsweise in PlanMaker ein leeres Dokument anlegen, so bedeutet dieser Vorgang für BasicMaker, dass Sie der Workbooks-Sammlung einen neuen Eintrag hinzufügen:

pm.Application.Workbooks.Add   ' leeres Dokument anlegen