Nun zu meinem Problem (trotz Recherchen keine Lösung gefunden):
In einem Excel-Makro gelingt es mir nicht die aktuelle Seite aus einem Word-Dokument herauszulesen.
Hintergrund:
Der Inhalt der Word-Datei soll per Excel-Makro in ein Tabellenblatt übertragen werden.
Das Besondere an der Word-Datei ist, dass der Text in lauter Positionsrahmen untergebracht ist. Deshalb möchte ich von jedem Positionsrahmen seine Lageparameter und seinen Inhalt in einer Tabelle abspeichern, um dann diese weiter zu bearbeiten. Zu den Lageparametern gehört auch die Seitennummer.
Hier mein XL-Makro:
Sub test_XL()
Dim sPfad As String, Dat As String
Dim appWord As Object
Dim i As Long
Dim NPr As Long
Dim wSeite As Variant
Dim pr As Object
Dim b As Integer
Dim ph As Long, pv As Long
Dim inh As String
i = 1
wSeite = 0
'WordObject erstellen
Set appWord = CreateObject("Word.Application")
'Pfad
sPfad = "D:\Listen\"
Dat = "EL_test2.doc"
'Worddocument öffnen
appWord.Documents.Open sPfad & Dat
For Each pr In appWord.Documents(Dat).Frames
pr.Select
wSeite = Selection.Information(wdActiveEndPageNumber)
i = i + 1
pv = pr.VerticalPosition
ph = pr.HorizontalPosition
b = pr.Width
inh = pr.Range
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 1) = wSeite
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 2) = i - 1
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 3) = pv
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 4) = ph
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 5) = b
ActiveWorkbook.Sheets("Tabelle1").Cells(i, 6) = inh
Next
'Worddocument schliessen
appWord.activeDocument.Close savechanges:=False
Set appWord = Nothing
End Sub
In wSeite soll die aktuelle Seite des Word-Dokumentes in der sich der Positionsrahmen befindet gespeichert werden, doch hier erscheint eine Fehlermeldung, z.B.:
Laufzeitfehler 438:
Objekt unterstützt diese Eigenschaft oder Methode nicht.
Varianten in der Syntax der Zuweisung helfen auch nicht. Als Word-Makro mit ähnlichem Aufbau läuft die Zuweisung einwandfrei. Ich vermute, dass Excel-VBA mit der Word-VBA Variable wdActiveEndPageNumber nichts anfangen kann.
Ich benötige jedoch dies alles im Excel-Makro, da die Übertragung der Daten in die Tabelle nur der erste Schritt von mehreren ist, und die komplette Verarbeitung in einem Zuge durchgeführt werden soll.
Zum besseren Verständnis habe ich eine vereinfachte Word-Datei mit hochgeladen (https://www.herber.de/bbs/user/58265.doc).
Kann jemand helfen?
Vielen Dank im Voraus
Walter Dix