Hallo,
wie kann per VB-Script in vielen Word-Dateien, die in einer Verzeichnisstruktur mit weiteren Unterverzeichnissen vorliegen, der jeweilige Textinhalt der einzelnen Dateien auf Schriftart "Arial Black" geändert werden?
Das beiliegende VB-Script mach schon einige Änderungen so, wie das sein soll. Wie muss das Script geändert werden, um die nachfolgenden Punkte auch noch zu berücksichtigen?
- wenn die entsprechende Schrift "Arial Black" schon
als Standard vorliegt, dann soll in dem Dokument
nichts geändert werden (ohne Änderung das Dokument
schließen und das nächste Dokument aufrufen)
- Dateien auch in vorliegenden Unterverzeichnissen
verarbeiten (bisher werden nur die Dateien aus einem
Verzeichnis verarbeitet),
- alle Kopf- und Fußzeilen eines Dokuments verarbeiten
(bisher geht nur die erste Kopf- und Fußzeile, auch
wenn im Dokument mehrere Kopf- bzw. Fußzeilen
vorliegen),
- auch Text in Textfelder sollen geändert werden
(bisher bleibt die bisherige Schriftart erhalten)
in Tabellen funktioniert es problemlos
Bin gespannt, ob das komplett mit VB gelöst werden kann.
Vielen Dank für schon einmal für eine Unterstützung.
Gruß
Thunderbird
Hier nun das Script:
Sub Schriftart()
'Schriftarten verändern
Dim i As Long
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.FileName = ""
'FileName = "*.doc" ' wenn nur DOC-Dateien geändert werden sollen
'Pfadangabe
.LookIn = "D:\Test" ' wie geht das mit mehreren, unterschiedlichen Verzeichnissen?
.SearchSubFolders = False
If .Execute() > 0 Then
ReDim strdateien(.FoundFiles.Count)
ReDim strZugehOrdner(.FoundFiles.Count)
'Durchläuft alle Dateien, die in dem Verzeichnis vorhanden sind.
'wie funktioniert das mit Unterverzeichnissen?
For i = 1 To .FoundFiles.Count
strdateien(i) = .FoundFiles(i)
strZugehOrdner(i) = .FoundFiles(i)
Do
strdateien(i) = Right(strdateien(i), (Len(strdateien(i)) -InStr(strdateien(i), "\")))
Loop While InStr(strdateien(i), "\") > 0
Documents.Open FileName:=strZugehOrdner(i)
Selection.EndKey Unit:=wdStory
Selection.HomeKey Unit:=wdStory
Selection.WholeStory
Selection.Font.Name = "Arial Black"
Selection.HomeKey Unit:=wdStory
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.WholeStory
Selection.Font.Name = "Arial Black"
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
'Hier wird die Standard-Schriftart geändert. Wenn hier "Arial Black"
'schon vorliegt, soll im Dokument nichts mehr geändert werden.
With ActiveDocument.Styles(wdStyleNormal).Font
.Name = "Arial Black"
.Size = 12
.Bold = False
.Italic = False
.Underline = wdUnderlineNone
.UnderlineColor = wdColorAutomatic
.StrikeThrough = False
.DoubleStrikeThrough = False
.Outline = False
.Emboss = False
.Shadow = False
.Hidden = False
.SmallCaps = False
.AllCaps = False
.Color = wdColorAutomatic
.Engrave = False
.Superscript = False
.Subscript = False
.Spacing = 0
.Scaling = 100
.Position = 0
.Kerning = 0
.Animation = wdAnimationNone
End With
'Speichern
ActiveDocument.Save
'Schliessen
ActiveDocument.Close 'schließt das Dokument
Next i
End If
End With
Application.ScreenUpdating = True
End Sub