Umsteigen auf OpenOffice: Von VBA zu OpenOffice-Basic - Teil 2

Objekt-Typ sicher stellen

Wenn Sie überprüfen möchten, ob es sich bei einem Objekt wirklich um ein „Calc-Dokument“ handelt, dann finden Sie es heraus, indem Sie überprüfen, ob es den Service com.sun.star.sheet.SpreadsheetDocument unterstützt:

If Thiscomponent.SupportsService("com.sun.star.sheet.SpreadsheetDocument") = False Then
MsgBox "Sie sind nicht im richtigen Dokument"
Else
...

Auf die Liste der Tabellenblätter greifen Sie über die Sammlung (Collection) Sheets zu. Jedes einzelne Blatt lässt sich über seine Nummer (die Zählung beginnt konsequenterweise bei allen Sammlungen bei 0) oder seinen Namen ansprechen.

Sub Blatt_Zugriff1
Dim objDatei as Object
Dim objBlaetter As Object
Dim objBlatt As Object

objDatei = ThisComponent
objBlaetter = objDatei.Sheets

'oder so:
objBlaetter = objDatei.getSheets()
objBlatt = objBlaetter.getByName("Tabelle1")

'oder so:
objBlatt = objDatei.Sheets("Tabelle1")
End Sub

Die Methode hasByName(String) der Schnittstelle XNameAccess verrät, ob ein Tabellenblatt mit einem bestimmten Namen innerhalb der Datei vorhanden ist. Die Eigenschaft Count und die Methode getCount() ermitteln die Anzahl der Tabellenblätter:

MsgBox objBlaetter.Count
MsgBox objBlaetter.getCount()

Dabei ist zu beachten, dass das erste Blatt die Indexnummer 0 besitzt, so dass die eine Schleife nur bis getCount() – 1 beziehungsweise Count – 1 hochzählen darf.