Дэвид — писатель, и он много использует средства проверки орфографии, стиля и грамматики Word. Иногда он обнаруживает, что предложения Word по исправлению грамматики плохи, и он научился их игнорировать. Одна вещь, с которой у него проблемы, — это использование кавычек в диалогах.

Word не распознает, поставил ли Дэвид кавычки в конце или в начале предложения. Он вспоминает, как много лет назад использовал текстовый редактор, который оставлял в документе зеленые кавычки, чтобы указать на отсутствующие кавычки. Он задается вопросом, можно ли заставить Word распознавать отсутствующие кавычки.

В Word нет возможности сделать это изначально. Причина, вероятно, сводится к тому, что практически невозможно определить, где должна начинаться и заканчиваться цитата. Например, если у вас есть абзац, содержащий четыре предложения, и вы помещаете кавычки где-то внутри этого абзаца, как Word определяет, обозначает ли этот знак начало или конец цитаты? Если это начало, как Word узнает, должен ли конечный знак быть в конце предложения, в конце второго предложения или в конце абзаца? (Та же самая загадка возникает, если кавычка является конечной цитатой, но затруднения с размещением простираются влево, а не вправо.)

Объедините эту потенциальную путаницу с тем фактом, что закрывающая кавычка может даже не находиться в текущем абзаце — она ​​может быть в конце какого-либо более позднего абзаца, когда отмечаемый диалог фактически заканчивается.

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

Sub MarkUnevenQuotes()

Dim sRaw As String     Dim iNorm As Integer     Dim iSmart As Integer     Dim J As Long

Selection.HomeKey Unit:=wdStory     Application.ScreenUpdating = False     Selection.Find.ClearFormatting     With Selection.Find         .Text = """"

.Replacement.Text = ""

.Forward = True         .Wrap = wdFindStop         .Format = True         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = False         .MatchSoundsLike = False         .MatchAllWordForms = False     End With     Selection.Find.Execute

While Selection.Find.Found         Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend         Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend         sRaw = Selection.Text         iNorm = 0         iSmart = 0         For J = 1 To Len(sRaw)

If Mid(sRaw, J, 1) = Chr(34) Then                 If iNorm > 0 Then                     iNorm = iNorm - 1                 Else                     iNorm = iNorm + 1                 End If             End If             If Mid(sRaw, J, 1) = Chr(147) Then                 iSmart = iSmart + 1             End If             If Mid(sRaw, J, 1) = Chr(148) Then                 iSmart = iSmart - 1             End If         Next J         If iNorm > 0 Or iSmart > 0 Then             Selection.Range.HighlightColorIndex = wdYellow         End If         Selection.Collapse Direction:=wdCollapseEnd         Selection.Find.Execute     Wend     Selection.HomeKey Unit:=wdStory     Application.ScreenUpdating = True End Sub

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

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

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

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

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

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (13293) применим к Microsoft Word 2007, 2010, 2013, 2016 и Word в Office 365.