Hier ist mein Quellcode um das erstellte Makro zu speichern und mit Excel 2010 zu öffnen.
Wobei oDoc an einer anderen stelle erstellt und bearbeitet wurde.
Code: Alles auswählen
Sub AngeboteV2_DokumentSpeichern
dim arg(0) as new com.sun.star.beans.PropertyValue
arg(0).Name = "FilterName"
arg(0).Value = "MS Excel 97"
Dim sURL as String
Dim sDateiName as String
sDateiName = "AngebotV2Temp.xls"
TempSpeicherPfad = ConvertToURL(environ("temp") & "/" & sDateiname
oDoc.storeToURL(TempSpeicherPfad, arg())
oDoc.close(True)
Speicherpfad = environ("temp") & "/" & "AngebotV2Temp.xls "
On Error goTo Office2010
shell("C:\Programme\Microsoft Office\Office12\EXCEL.EXE " & Speicherpfad)
Exit Sub
Office2010:
On Error GoTo OpenOffice
shell("C:\Programme\Microsoft Office\Office14\EXCEL.EXE " & Speicherpfad)
Exit Sub
OpenOffice:
shell("C:\Programme\OpenOffice.org 3\program\scalc.exe " & Speicherpfad)
End Sub
Der Teil mit der Unterscheidung welche Office Version auf dem Rechner ist, geht auch noch nicht.
Hier die Lösung des Problems (Wird wohl auch mit Word oder PowerPoint funktionieren, wenn man es anpasst.
(Nur für Windows Systeme)
Code: Alles auswählen
Sub AngeboteV2_DokumentSpeichern
dim arg(0) as new com.sun.star.beans.PropertyValue
arg(0).Name = "FilterName"
arg(0).Value = "MS Excel 97 Vorlage/Template"
Dim sURL as String
Dim sDateiName as String
sDateiName = "AngebotV2Temp.xls"
TempSpeicherPfad = ConvertToURL(environ("temp") & "/" & sDateiname
oDoc.storeToURL(TempSpeicherPfad, arg())
Speicherpfad = environ("temp") & "/" & "AngebotV2Temp.xls"
If FileExists("C:\Programme\Microsoft Office\Office14\EXCEL.EXE") Then 'Office 2010
oDoc.close(True)
Set oExcel = CreateObject("Excel.Application")
oExcel.visible = true
oExcel.Workbooks.Add(Speicherpfad)
'shell("C:\Programme\Microsoft Office\Office14\EXCEL.EXE " & Speicherpfad)
Exit Sub
ElseIf FileExists("C:\Programme\Microsoft Office\Office12\EXCEL.EXE") Then 'Office 2007
oDoc.close(True)
Set oExcel = CreateObject("Excel.Application")
oExcel.visible = true
oExcel.Workbooks.Add(Speicherpfad)
'shell("C:\Programme\Microsoft Office\Office12\EXCEL.EXE " & Speicherpfad)
Exit Sub
Else
oDoc.getCurrentController.getFrame.getContainerWindow().setVisible(true) 'OpenOffice
End If
End Sub