У Майка есть документ, в котором довольно много слов, заключенных в кавычки. Он хотел бы, чтобы процитированные слова были помечены для включения в указатель, а кавычки были удалены.

Лучший способ внести такие изменения в ваш документ — использовать макрос. Макросу необходимо найти цитируемый текст, выяснить, где он начинается и где заканчивается, удалить кавычки, а затем добавить индексную метку. (Отметка добавляется с помощью поля 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), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (13240) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365. Вы можете найти версию этого совета для старый интерфейс меню Word здесь:

link: / word-Adding_Quoted_Words_to_an_Index [Добавление слов в кавычки в индекс].