Contents
Makros zum Thema „Seitenbereichsangaben“
Weitere Makros sind in Teil 1 und Teil 2 zu finden.
Sub pagefeld_zwischenablage()
‚
‚fügt hilfsweise das Page-Feld am Anfang des Dokuments ein und schneidet es dann aus, womit es sich in der Zwischenablage befindet; wird für die nachfolgenden Schritte benötigt
‚
‚
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
„PAGE „, PreserveFormatting:=False
Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.Cut
End Sub
Sub page_in_standardschr()
‚
‚fügt das Page-Feld in Standardschrift in den XE-Feldern ein
‚
‚
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles( _
„Absatz-Standardschriftart“)
With Selection.Find
.Text = „^d Page“
.Replacement.Text = „^&“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sub phase_zwei_a_eins_page_in_xe_all()
‚
‚ dient in Phase 2 a dazu, das Page-Feld hilfsweise zu erzeugen, auszuschneiden und dann am Ende jedes XE-Feldes einzufügen, und zwar mit dem Zeichenformat „Absatz-Standardschriftart“
‚
‚
Selection.HomeKey Unit:=wdStory
Application.Run MacroName:=“nichtdr_ein“
‚Feldsyntax muss nicht sichtbar sein, weil nicht nach dem Page-Feld gesucht wird
Application.Run MacroName:=“pagefeld_zwischenablage“
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „(XE „“*)“““
.Replacement.Text = „\1:^c“““
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Application.Run MacroName:=“page_in_standardschr“
MsgBox „Page-Feld am Ende aller XE-Felder eingebaut“, vbOKOnly
End Sub
Sub phase_zwei_a_zwei_reihenfolge_page_all()
‚
‚ dient in Phase 2 a dazu, die Reihenfolge von Code und Page-Feld umzudrehen, entfernt einen Doppelpunkt
‚
‚
Application.Run MacroName:=“nichtdr_ein“
Application.Run MacroName:=“feldsyntax_ein“
’nicht druckbare Zeichen und Feldsyntax müssen sichtbar sein,
‚weil nach dem Page-Feld im XE-Feld gesucht wird
Selection.HomeKey Unit:=wdStory
Application.Run MacroName:=“pagefeld_zwischenablage“
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „:<:^d Page“
.Replacement.Text = „:^c<„
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „:>:^d Page“
.Replacement.Text = „:^c>“
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Application.Run MacroName:=“page_in_standardschr“
MsgBox „Reihenfolge von Seitenbereich-Code und Page-Feld umgedreht“, vbOKOnly
End Sub
Sub einfuegen_in_absatzstandardformat()
‚
‚ fügt kopierten Text im Absatzstandardformat an Cursoposition ein
‚
‚
Selection.PasteAndFormat (wdFormatSurroundingFormattingWithEmphasis)
End Sub
Sub nichtdr_aus()
‚
‚ schaltet die Anzeige der nichtdruckbaren Zeichen aus
‚
‚
Dim a As Long
ActiveWindow.ActivePane.View.ShowAll = Not ActiveWindow.ActivePane.View. _
ShowAll
‚MsgBox „Sind die Absatzmarken zu sehen?“, vbYesNo
a = MsgBox(„Sind die Absatzmarken zu sehen?“, vbYesNo)
‚MsgBox (a)
‚wenn die Antwort „nein“ lautet, ergibt sich der Wert 7; bei „ja“ ergibt sich 6
If a = „6“ Then
ActiveWindow.ActivePane.View.ShowAll = Not ActiveWindow.ActivePane.View. _
ShowAll
End If
End Sub
Sub nichtdr_ein()
‚
‚ schaltet die Anzeige der nichtdruckbaren Zeichen ein
‚
‚
Dim a As Long
ActiveWindow.ActivePane.View.ShowAll = Not ActiveWindow.ActivePane.View. _
ShowAll
a = MsgBox(„Sind die Absatzmarken zu sehen?“, vbYesNo)
‚MsgBox (a)
‚wenn die Antwort „nein“ lautet, ergibt sich der Wert 7; bei „ja“ ergibt sich 6
If a = „7“ Then
ActiveWindow.ActivePane.View.ShowAll = Not ActiveWindow.ActivePane.View. _
ShowAll
End If
End Sub
Sub phase_zwei_a_drei_aktual()
‚
‚ dient in Phase 2 a zur Aktualisierung der Page-Felder
‚
‚
Application.Run MacroName:=“feldsyntax_aus“
Application.Run MacroName:=“nichtdr_aus“
’nichtdruckbare Zeichen und Feldsyntax dürfen nicht sichtbar sein,
‚damit das Page-Feld die korrekten Seitenzahlen erzeugt;
‚Aktualisierung wirkt auch auf nichtsichtbare Felder!
Selection.WholeStory
Selection.Fields.Update
MsgBox „Alle Felder aktualisiert.“, vbOKOnly
End Sub
Sub feldsyntax_aus()
‚
‚ schaltet die Anzeige der Feldsyntax_aus‘
‚
Dim a As Long
ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
‚MsgBox „Sind die Absatzmarken zu sehen?“, vbYesNo
a = MsgBox(„Ist die Feldsyntax zu sehen?“, vbYesNo)
‚MsgBox (a)
‚wenn die Antwort „nein“ lautet, ergibt sich der Wert 7; bei „ja“ ergibt sich 6
If a = „6“ Then
ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
End If
End Sub
Sub feldsyntax_ein()
‚
‚ schaltet die Anzeige der Feldsyntax ein
‚
‚
Dim a As Long
ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
‚MsgBox „Sind die Absatzmarken zu sehen?“, vbYesNo
a = MsgBox(„Ist die Feldsyntax zu sehen?“, vbYesNo)
‚MsgBox (a)
‚wenn die Antwort „nein“ lautet, ergibt sich der Wert 7; bei „ja“ ergibt sich 6
If a = „7“ Then
ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
End If
End Sub
Sub phase_zwei_a_vier_fix()
‚
‚ dient in Phase 2 a dazu, die Inhalte der Page-Felder zu fixieren
‚
‚
Application.Run MacroName:=“nichtdr_ein“
‚es reicht, wenn die nichtdruckbaren Zeichen angezeigt werden, denn dann sind auch
‚die Ergebnisse der Page-Felder in den XE-Feldern zu sehen und können fixiert werden
Selection.WholeStory
Selection.Fields.Unlink
MsgBox „Alle Felder fixiert.“, vbOKOnly
End Sub
Sub phase_zwei_a_fünf_fuehr_null()
‚
‚dient in Phase 2 a dazu, führende Nullen bei Seitenverweisen einzubauen
‚
‚
Application.Run MacroName:=“nichtdr_ein“
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „:([0-9][0-9]““)“
.Replacement.Text = „:0\1“
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = „:([0-9][0-9]\<„“)“
.Replacement.Text = „:0\1“
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = „:([0-9][0-9]\>““)“
.Replacement.Text = „:0\1“
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = „:([0-9]““)“
.Replacement.Text = „:00\1“
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = „:([0-9]\<„“)“
.Replacement.Text = „:00\1“
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = „:([0-9]\>““)“
.Replacement.Text = „:00\1“
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
MsgBox „Führende Nullen eingebaut.“, vbOKOnly
End Sub
Sub phase_zwei_b_eins_index_fix()
‚
‚ dient in Phase 2 b dazu, den Index_zu fixieren
‚
‚
Application.Run MacroName:=“nichtdr_aus“
Selection.EndKey Unit:=wdStory
Selection.MoveUp Unit:=wdLine, Count:=2
Selection.Fields.Update
Selection.Fields.Unlink
MsgBox „Index fixiert.“, vbOKOnly
End Sub
Sub phase_zwei_b_zwei_word_int_seitz()
‚
‚ dient in Phase 2 b dazu, die Word-internen Seitenverweise zu löschen
‚
‚
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “ <[0-9]{1;3}>“
.Replacement.Text = „“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
MsgBox „Word-eigene Seitenverweise gelöscht.“, vbOKOnly
End Sub
Sub phase_zwei_b_drei_von_bis_in_zeile()
‚
‚ dient in Phase 2 b dazu, Von-Bis-Angaben in eine Zeile zu bringen
‚
‚
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “ <[0-9]{1;3}>“
.Replacement.Text = „“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „([0-9]{3;3})\<^013([0-9]{3;3})\>“
.Replacement.Text = „\1–\2“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
MsgBox „Von-Bis-Angaben in eine Zeile gebracht.“, vbOKOnly
End Sub
Sub phase_zwei_b_vier_form_norm()
‚
‚ dient in Phase 2 b dazu, die Formatvorlagen zu normieren; dabei werden die Hilfscodes # und ## eingeführt
‚
‚
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles(„Index 2“)
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles(„Index 1“)
With Selection.Find
.Text = „(<[0-9]{3;3}>–<[0-9]{3;3}>)“
.Replacement.Text = „#\1“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = „(<[0-9]{3;3}>)“
.Replacement.Text = „#\1“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles(„Index 3“)
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = ActiveDocument.Styles(„Index 2“)
With Selection.Find
.Text = „(<[0-9]{3;3}>–<[0-9]{3;3}>)“
.Replacement.Text = „##\1“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = „(<[0-9]{3;3}>)“
.Replacement.Text = „##\1“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
MsgBox „Formatvorlagen normiert.“, vbOKOnly
End Sub
Sub phase_zwei_b_fuenf_seitz_hochziehen()
‚
‚dient in Phase 2 b dazu, alle Seitenverweise in Eintragstextzeile hochzuziehen
‚
‚
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „^013#([0-9]{3;3})“
.Replacement.Text = „, \1“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = „^013##([0-9]{3;3})“
.Replacement.Text = „, \1“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
MsgBox „Seitenverweise zusammengeführt und hochgezogen.“, vbOKOnly
End Sub
Sub phase_zwei_b_sechs_komma_weg()
‚
‚dient in Phase 2 b dazu, das Komma nach dem Eintragstext durch ein Leerzeichen zu ersetzen (sodass nach dem Eintragstext zwei Leerzeichen als Trenner zu den Seitenzahlen stehen)
‚
‚
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „([A-zÄÖÜäöüß\)]), ([0-9]{3;3})“
.Replacement.Text = „\1 \2“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
MsgBox „Komma vor erstem Seitenverweis durch doppeltes Leerzeichen ersetzt.“, vbOKOnly
End Sub
Sub phase_zwei_b_sieben_nullen_weg()
‚
‚ dient in Phase 2 b dazu, die führenden Nullen zu entfernen‘
‚
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „<00([1-9])>“
.Replacement.Text = „\1“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = „<0([1-9][0-9])>“
.Replacement.Text = „\1“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
MsgBox „Führende Nullen entfernt.“, vbOKOnly
End Sub