マイクは、引用符で囲まれたかなりの数の単語を含むドキュメントを持っています。彼は、引用された単語をインデックスに含めるためにマークを付け、引用符を削除することを望んでいます。

ドキュメントにこのような変更を加える最良の方法は、マクロを使用することです。マクロは、引用符で囲まれたテキストを検索し、開始位置と終了位置を特定し、引用符を削除してから、インデックスマークを追加する必要があります。 (マークはXEフィールドを使用して追加されます。)

このようなマクロを作成する方法はおそらくたくさんあります。使用できるものは次のとおりです。

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

マクロを使用するには、マクロを実行する前に、影響を与えるテキストを選択するだけです。 (ドキュメント全体に影響を与える場合は、マクロを実行する前にCtrl + Aを押してください。)

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(13240)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス: