AW: Word Textmarken in Excel einlesen
Luschi
Hallo Manfred,
so sollte es klappen:
Option Explicit
Sub Word_Dokument_nach_Excel()
Dim myWord As Object, wb As Workbook, _
xPfad As String, docDatei As String
Set wb = ThisWorkbook
xPfad = wb.Path
'Fehlerroutine für die Objectabfrage aktivieren
'Abfragen einer besthenden WORD-Instanz um wiederholtes starten zu verhindern
'9 = Word 2000, 10 = Word XP
On Error Resume Next
Set myWord = GetObject("Word.Application.10")
On Error GoTo 0
If myWord Is Nothing Then
'Fehlervariable leeren wenn Instanz noch nicht besteht
Err.Clear
'Zuweisung der Instanz
Set myWord = CreateObject("Word.Application.10")
'Instanz öffnen
'Um das ganze etwas im Hintergrund laufen zu lassen
'kann man den Status "wdWindowStateMinimize" verwenden
myWord.Visible = True: myWord.WindowState = wdWindowStateMaximize
Else
'Instanz besteht bereits
myWord.Activate
'Instanz in der Vordergrund bringen oder
'mit "wdWindowStateMinimize" im Hintergrund ausführen
myWord.Visible = True: myWord.WindowState = wdWindowStateMaximize
End If
'Hier sollte ein Worddokument *.doc frei wählbar zum öffnen sein
'wobei davon ausgegangen wird, das die Excel- und Worddatei im gleichen
' Verzeichnis sich befinden
ChDrive Left(xPfad, 1)
ChDir xPfad
docDatei = Application.GetOpenFilename("Word-Datei (*.doc), *.doc")
If docDatei <> "Falsch" Then
myWord.Documents.Open docDatei, , True
'Die Textmarken "Wert_100, Wert_200, Wert_300" müssen im Dokument bereits bestehen
'diese sollen dann in die offene Exeldatei in Tabelle1 in die Zellen, Wert_100,
'Wert_200, Wert_300 geschrieben werden
wb.Names("Wert_100").RefersToRange.Value = myWord.ActiveDocument.Bookmarks("Wert_100")
wb.Names("Wert_200").RefersToRange.Value = myWord.ActiveDocument.Bookmarks("Wert_200")
wb.Names("Wert_300").RefersToRange.Value = myWord.ActiveDocument.Bookmarks("Wert_300")
'Das aktive WordDokument drucken
'myWord.ActiveDocument.PrintOut
'Dokument schliessen ohne speichern
myWord.ActiveDocument.Close savechanges:=False
'Speichern mit fixem Namen
'myWord.ActiveDocument.SaveAs Filename:="DokumentName", FileFormat:=wdFormatDocument
'Speichern mit Variable
'myWord.ActiveDocument.SaveAs Filename:=Variable, FileFormat:=wdFormatDocument
Else
MsgBox "keine Datei ausgewählt --> Programm-Abruch", 16, "Fehler - F e h l e r - Fehler. _
End If
'WORD-Instanz schliessen
myWord.Quit
'Variable leeren
Set myWord = Nothing
Set wb = Nothing
End Sub
Gruß von Luschi
aus klein-Paris