Mike hat ein Dokument, das einige Wörter enthält, die von Anführungszeichen umgeben sind. Er möchte, dass die zitierten Wörter zur Aufnahme in einen Index markiert und die Anführungszeichen entfernt werden.

Der beste Weg, um eine solche Änderung in Ihrem Dokument vorzunehmen, ist die Verwendung eines Makros. Das Makro muss nach dem zitierten Text suchen, herausfinden, wo er beginnt und endet, die Anführungszeichen löschen und dann die Indexmarke hinzufügen. (Die Markierung wird mithilfe eines XE-Felds hinzugefügt.)

Es gibt wahrscheinlich viele Möglichkeiten, wie ein solches Makro erstellt werden könnte. Folgendes könnte verwendet werden:

Sub QuotesToIndexEntries()

Dim iOpenQuote As Integer     Dim iCloseQuote As Integer     Dim sP As String     Dim sPhrase As String     Dim iParas As Integer

If Selection.ExtendMode Then Exit Sub

iParas = Selection.Paragraphs.Count     Selection.StartOf unit:=wdParagraph, Extend:=wdMove     For J = 1 To iParas         Selection.MoveEnd unit:=wdParagraph         sP = Selection.Text         iOpenQuote = InStr(sP, Chr(34))

If iOpenQuote = 0 Then iOpenQuote = InStr(sP, Chr(147))



While iOpenQuote > 0             iCloseQuote = InStr(iOpenQuote + 1, sP, Chr(34))

If iCloseQuote = 0 Then                 iCloseQuote = InStr(iOpenQuote + 1, sP, Chr(148))

End If             If iCloseQuote > 0 Then                 sPhrase = Mid(sP, iOpenQuote + 1, _                   iCloseQuote - iOpenQuote - 1)

Selection.Collapse Direction:=wdCollapseStart                 Selection.MoveRight unit:=wdCharacter, _                   Count:=iOpenQuote - 1, Extend:=wdMove                 Selection.Delete unit:=wdCharacter, Count:=1                 Selection.MoveRight unit:=wdCharacter, _                   Count:=Len(sPhrase), Extend:=wdMove                 Selection.Delete unit:=wdCharacter, Count:=1

Selection.Fields.Add Range:=Selection.Range, _                   Type:=wdFieldEmpty, _                   PreserveFormatting:=False                 Selection.MoveLeft unit:=wdCharacter, Count:=1                 Selection.Delete unit:=wdCharacter, Count:=2                 Selection.TypeText Text:="XE " + Chr(34) + _                   sPhrase + Chr(34)

Selection.MoveRight unit:=wdCharacter, _                   Count:=1, Extend:=wdMove             End If             Selection.MoveEnd unit:=wdParagraph             sP = Selection.Text             iOpenQuote = InStr(sP, Chr(34))

If iOpenQuote = 0 Then iOpenQuote = InStr(sP, Chr(147))

Wend                  Selection.MoveStart unit:=wdParagraph, Count:=1     Next J End Sub

Um das Makro zu verwenden, wählen Sie einfach den Text aus, den Sie beeinflussen möchten, bevor Sie es ausführen. (Wenn Sie das gesamte Dokument beeinflussen möchten, drücken Sie Strg + A, bevor Sie das Makro ausführen.)

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (3804) gilt für Microsoft Word 97, 2000, 2002 und 2003. Sie finden eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Word (Word 2007) und später) hier: