User:Stefanw/Tipps/Allgemein/OOo mit VBA steuern

From Apache OpenOffice Wiki
Jump to: navigation, search
Der Inhalt dieser Seite steht unter der Lizenz Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland.
Bilder und Dateien können abweichende Lizenzen haben!





User-Bereich von Stefan Weigel

Seiten im User-Bereich:

Tipps

Archiv

Seiten von Stefan im OOo-Wiki:

Marketing

Makro

Dokumente

Frage von Ralf Deing auf der Users-Mailingliste:

Ich übergebe aus einer MSAccess Datenbank Werte per VBA über
Platzhalter an MSWord. Nun würde ich das gleiche aber lieber
an OpenOffice Writer machen. Hat jemand schon so was gemacht?
Hat jemand Infos über Objektvariablen usw. So das ich das per
Latebinding einbinden kann.

Beispiel einer VBA-Prozedur, die in OOo Writer ein Textdokument öffnet und dort Text hineinschreibt:

Sub test()
 
    Dim objServiceManager As Object
    Dim objDesktop As Object
    Dim objDocument As Object
    Dim objText As Object
    Dim objCursor As Object
    Dim args()
 
    'The service manager is always the starting point
    'If there is no office running then an office is started up
    Set objServiceManager = CreateObject("com.sun.star.ServiceManager")
 
    'Create the Desktop
    Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")
 
    'Open a new empty writer document
    Set objDocument = objDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, args)
 
    'Create a text object
    Set objText = objDocument.getText
 
    'Create a cursor object
    Set objCursor = objText.createTextCursor
 
    'Inserting some Text
    objText.insertString objCursor, "The first line in the newly created text document." & vbLf, False
 
End Sub

Weitere Info über Automation von OOo gibt es hier und beim API-Projekt von OOo.

Stefan Weigel 23:30, 5 November 2008 (CET)

Personal tools