مایک سندی دارد که حاوی چند کلمه است که با علامت نقل قول احاطه شده است. او میخواهد کلمات نقلقولشده برای درج در فهرست علامتگذاری شوند و علامتهای نقل قول حذف شوند.
بهترین راه برای ایجاد چنین تغییری در سند خود استفاده از ماکرو است. ماکرو باید متن نقلقولشده را جستجو کند، بفهمد کجا شروع میشود و کجا متوقف میشود، علامتهای نقل قول را حذف کرده و سپس علامت فهرست را اضافه کند. (علامت با استفاده از یک فیلد 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 را قبل از اجرای ماکرو فشار دهید.)