20. Apr 2024, 12:18
VB-fun.de - Beitragsübersicht zum VB-/VBA-Forum-Archiv 0402
  VBS: per VB-Script in WORD-Dateien die Schriftart ändern
 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

[ VB-/VBA-Forum | Archiv 0402 | Archiv-Übersicht ]
 Antworten
VBS: per VB-Script in WORD-Dateien die Schriftart ändern - Thunderbird 27. November 2007 um 15:19:40
Re: per VBA-WORD-Dateien die Schriftart ändern - r.mueller@sz-online.de 27. November 2007 um 18:35:24
Re: per VBA-WORD-Dateien die Schriftart ändern - Thunderbird 28. November 2007 um 15:50:30

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB-/VBA-Forum | DirectX | DirectX-Forum | VB.Net | VB.Net-Forum | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum