ich möchte gerne eine Textdatei mit einem Makro öffnen. Das klappt auch schon ganz gut:
ChangeFileOpenDirectory _
„\CAM2\UEBMIC“
Documents.Open FileName:=„bip_indi9.t04“, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:="", _
Encoding:=1252
Selection.WholeStory
Selection.Font.Size = 6
Und dann sollen bestimmte Zeilen gefunden werden, die mit „Prozess:“ beginnen und das was hinter „Prozess:“ steht als Überschrift formatiert werden. Wenn sich ein Prozess wiederholt, soll dieser Schritt übersprungen werden. Schliesslich soll auf der ersten Seite ein Inhlatsverzeichnis erstellt werden und die Datei irgendwohin gespeichert werden.
Wie mache ich das am besten?
Grüße,
Sebastian
oh je, das ist eine Arbeit für jemanden, der Vater und Mutter erschlagen hat (soifz).
Mein Vorgehen, als ich das mal machen musste: Einzelschritte wie Anfang suchen / Ende suchen / markieren / Format zuweisen / usw / etc / pp per Makrorekorder aufzeichnen und zu einem Makro zusammenstoppeln.
Was der Rekorder nicht aufzeichnen kann, sind Schleifen. Als Beispiel diene das Ersetzen einer Formatanweisung durch eine andere:
Sub Ersetze\_Format(Suche As String, Ersetze As String)
Selection.Find.ClearFormatting
Selection.HomeKey Unit:=wdStory
Call SucheFormat(Suche)
While rc
' Zeilenvorschub \> Paragraph
Selection.Style = ActiveDocument.Styles(Ersetze)
' Nächsten Kopf suchen
Selection.Find.ClearFormatting
Selection.HomeKey Unit:=wdStory
Call SucheFormat(Suche)
Wend
End Sub
Sub SucheFormat(Format As String)
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles(Format)
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
rc = Selection.Find.Execute
End Sub