Hinzufügen von zitierten Wörtern zu einem Index (Microsoft Word)
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: