Servus
toni007 hat geschrieben:Für die Zukunft wäre eine Lösung aber schon interessant!
Wenn das Dokument um jeden Preis von vornherein versteckt geöffnet werden muss, hilft der ScriptProvider des Dokuments.
Erstell Dir ein Dokument und darin das Makro (dies ist die Datei die versteckt geöffnet wird)
Code: Alles auswählen
Sub MakroInDocument2(Optional blaVar)
If isEmpty(blaVar) Then
MsgBox "MakroInDocument2 ausgeführt - ohne Parameter"
Else
MsgBox "MakroInDocument2 ausgeführt - Parameter: " & blaVar
End If
End Sub
Speicher und schliess das Dokument.
Nun kannst Du mit folgendem Code jederzeit das Dokument versteckt öffnen und das Makro ausführen
(Pfad und Namen in den ersten vier Zeilen entsprechend anpassen an das zu öffnende Dokument)
Code: Alles auswählen
Sub Main
sURL = "C:\meinPfad\meinVerstecktZuOeffnendesDokument.ods"
sLibName = "Standard"
sModuleName = "Module1"
sMakroName = "MakroInDocument2"
sURL = ConvertToURL(sURL)
Dim args(0) as new com.sun.star.beans.PropertyValue
args(0).Name = "Hidden"
args(0).Value = True
oDocument2 = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, args)
sScriptURI = "vnd.sun.star.script:" & sLibName & "." & sModuleName & "." & sMakroName & "?language=Basic&location=document"
oScript = oDocument2.ScriptProvider.getScript(sScriptURI)
REM Mit Parameter
oScript.invoke(Array("blaParameter"),Array(1),Array())
REM oder ohne Parameter
REM oScript.invoke(Array(dummy),Array(),Array())
oDocument2.close(True)
End Sub