Von |
Thunderbird |
eMail |
|
Am |
27. November 2007 um 15:19:40 |
Frage |
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
|
|