Tabstops in Wordkopfzeilen mit VBA erkennen
09.01.2006 10:27:07
urs
zur Zeit beschäftige ich mich mit dem Auslesen von Wordkopfzeilen.
Ein Beispiel: Ich möchte die Information zwischen dem 2. und 3. Tabstopp, sowie die Information zwischen dem 6. und 7. Tabstopp aller Word Dateien in einem bestimmten Ordner auslesen.
Wie macht man das?
Nach Hilfen von Eugen (geschlossener Thread letzter Woche) bin ich mit dem Macro soweit, dass es die Kopfzeile und Fusszeile ganz ausliest. Aber nur von der aktuellen Seite. Wie bekomme ich das von der 1. Seite hin, denn bei manchen Dateien sind die Folgeseiten "Kopf- und Fusszeilenlos?
<pre>
Sub Word_Köpfe_auslesen()
Dim nRow As Integer ' welche Zeile im target formular
Dim oWord As Object
Dim szHeader As String, szFooter As String
'Application.ScreenUpdating = False
Set wBMaster = ActiveWorkbook ' Was bedeutet das?
nRow = 2
' szDatei = Dir(szDir + "*.DOC")
strPfad = InputBox("Geben Sie bitte den auszulesenden Ordner ein", Default:="R:\1_Intern\Tabellen in Arbeit\Stäuble\BETAtrans\Prüfanweisungen")
With Application.FileSearch
.LookIn = strPfad
.SearchSubFolders = False
.Filename = "*.doc"
.Execute
End With
For i = 1 To Application.FileSearch.FoundFiles.Count
Application.StatusBar = "Die " & i & ". von insgesamt " & Application.FileSearch.FoundFiles.Count & " Mappen im Verzeichnis " & strPfad & " wird eingelesen"
On Error Resume Next
Set oWord = CreateObject("word.application")
If IsNull(oWord) Then Exit <pre>
Sub ' vielleicht noch eine msgbox spendieren
'Do While szDatei <> ""
oWord.documents.Open Application.FileSearch.FoundFiles(i)
szHeader = Right(oWord.activedocument.sections(1).headers(1).Range.Text, 200)
szFooter = Right(oWord.activedocument.sections(1).footers(1).Range.Text, 200)
ActiveWorkbook = "Wordköpfe.xls"
Sheets(1).Cells(nRow, 1).Value = szHeader
Sheets(1).Cells(nRow, 2).Value = szFooter
nRow = nRow + 1
oWord.activedocument.Close ' wieder zumachen
'szDatei = Dir
'Loop
Next
'Application.ScreenUpdating = True
' hier sollte man no oWord freigeben
Set oWord = Nothing
End Sub</pre>
Für Hilfe bedankt sich jetzt schon Urs