Во многих текстовых редакторах автор может выделять материал в кавычках. Например, когда термин вводится впервые, автор может заключить его в кавычки. Однако в Word информацию можно выделять курсивом. Замена цитируемого материала курсивом вручную может занять очень много времени.

Следующий макрос, QuotesToItalics, проверяет текущий абзац на предмет цитируемого материала. Если есть, он удаляет кавычки и меняет текст между кавычками на курсив. Если кавычки не сбалансированы (есть открывающая или закрывающая кавычки без соответствующей закрывающей или открывающей кавычки), то кавычки игнорируются и никаких изменений не производится. Макрос работает как с обычными, так и с умными кавычками.

Sub QuotesToItalic()

Dim Redo As Boolean     Dim Ptr As Integer     Dim Ptr1 As Integer     Dim P As String     Dim P1 As String

If Selection.ExtendMode Then Exit Sub     Redo = True     While Redo         Selection.StartOf Unit:=wdParagraph, Extend:=wdMove         Selection.MoveEnd Unit:=wdParagraph         P = Selection.Text         Ptr = InStr(P, Chr(34))

If Ptr = 0 Then Ptr = InStr(P, Chr(147))

If Ptr > 0 Then             Selection.MoveLeft Unit:=wdCharacter, Extend:=wdMove             Selection.MoveRight Unit:=wdCharacter, Count:=Ptr             Selection.MoveEnd Unit:=wdParagraph             P1 = Selection.Text             Ptr1 = InStr(P1, Chr(34))

If Ptr1 = 0 Then                 Ptr1 = InStr(P1, Chr(148))

EndChar = Chr(148)

Else                 EndChar = Chr(34)

End If             If Ptr1 > 0 Then                 Selection.MoveLeft Unit:=wdCharacter, Count:=2, _                   Extend:=wdMove                 Selection.Delete Unit:=wdCharacter                 Selection.MoveRight Unit:=wdCharacter, _                   Count:=Ptr1 - 1, Extend:=wdExtend                 Selection.Font.Italic = True                 Selection.MoveRight Unit:=wdCharacter, Extend:=wdMove                 Selection.Delete Unit:=wdCharacter             Else                 Selection.MoveRight Unit:=wdCharacter, Extend:=wdMove                 Redo = 0             End If         Else             Selection.MoveRight Unit:=wdCharacter, Extend:=wdMove             Redo = 0         End If     Wend End Sub

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

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

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

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

link: / word-Replacing_Quoted_Text_with_Italics [Замена текста в кавычках курсивом].