Private Sub ReplaceCalcFields()
On Error GoTo Exit_ReplaceCalcFields
Dim StyleFamilies As Object
Dim PageStyles As Object
Dim DefPage As Object
Dim HText As Object
Dim txt As String
Set StyleFamilies = objDocument.StyleFamilies
Set PageStyles = StyleFamilies.getByName("PageStyles")
Set DefPage = PageStyles.getByName("Default")
If DefPage.HeaderIsOn Then
Set HText = DefPage.HeaderText.GetString()
'txt = DefPage.HeaderText.GetString()
End If
Exit_ReplaceCalcFields:
On Error Resume Next
Set HText = Nothing
Set DefPage = Nothing
Set PageStyles = Nothing
Set StyleFamilies = Nothing
Exit Sub
End Sub
...und zwar in der Zeite 'Set HText = DefPage.HeaderText.GetString()', also beim Zugriff auf den HeaderText. Auch die Variante 'txt = DefPage.HeaderText.GetString()' bringt einen Fehler. Der Debugger gibt an, dass das Objekt DefPage.HeaderText nicht existiert. Hat jemand eine Ahnung, was ich falsch mache? Ich bin dankbar für jede Hilfe.
Dim objServiceManager As Object
Dim objDesktop As Object
Dim objCoreReflection As Object
Dim objDocument As Object
Dim outDoc As String
Dim args()
outDoc = "E:\Beispiel\beispiel-tabelle.ods"
Set objServiceManager = CreateObject("com.sun.star.ServiceManager")
Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")
Set objCoreReflection = objServiceManager.createInstance("com.sun.star.reflection.CoreReflection")
Set objDocument = objDesktop.loadComponentFromURL(ConvertToURL(outDoc), "_blank", 0, args)
ReplaceCalcFields
If Not objDocument Is Nothing Then Call objDocument.Close(True)
Set objDocument = Nothing
If Not objCoreReflection Is Nothing Then objCoreReflection.dispose
If Not objDesktop Is Nothing Then objDesktop.Terminate
Set objCoreReflection = Nothing
Set objDesktop = Nothing
Set objServiceManager = Nothing
Ansonsten habe ich keine unterschiedlichen Kopfzeilen für rechts und links eingestellt sondern nur eine für alle Seiten (Bei Format-Seite ist die Option "Beide Seiten Gleich" aktiviert). Wie lauten dann der Zugriff auf den Header-Content, 'PageHeaderContent'?