Umsteigen auf OpenOffice: Von VBA zu OpenOffice-Basic

ThisComponent und CurrentComponent

In StarOffice erfolgt der Zugriff auf das aktive Dokumentobjekt über die Eigenschaften StarDesktop.CurrentComponent und ThisComponent. Der Unterschied ist – ähnlich wie in VBA – das Objekt, das im Vordergrund liegt, beziehungsweise das Objekt des OOo-Desktops, an welchem der Code hängt. Wenn Sie StarDesktop.CurrentComponent aus der Entwicklungsumgebung testen, werden Sie einen Fehler erhalten, da mit diesem Objekt der Makroeditor selbst gemeint ist.

Neues Dokument erzeugen

Um ein leeres Dokument zu erzeugen, kann man die Methode loadComponentFromURL des Service Desktop verwenden:

Dim objDT Obj As Object
Dim objDok As Object

objDT = createUnoService("com.sun.star.frame.Desktop")
objDok = objDT.loadComponentFromURL("private:factory/scalc", "_blank", 0, NoArgs())

Mit der gleichen Methode wird auch eine Datei geöffnet:

objDok = objDT.loadComponentFromURL("file:///C:/Eigene%20%Dateien/test.sxc", "_blank", 0, NoArgs())