У меня есть несколько книг, которые неправильно отформатированы и содержат, среди прочего, ВОПРОСЫ и Ответы.

Моя работа состоит в том, чтобы сделать все вопросы капитализированными и жирными. Я использую MS Word для поддержки частей, которые уже правильно отформатированы, поэтому перенести его в Notepad++ (например) и обратно не вариант.

Единственное возможное решение, которое я могу себе представить, это использование подстановочных знаков, чтобы найти все слова раньше "?"и ни один после, затем заменяя их параметрами форматирования, уже имеющимися в инструменте замены MS Word.

Так кто-нибудь знает как?

Как мне найти вопросы (слова перед "?"") с помощью регулярных выражений / подстановочных знаков?

1 ответ1

2

Вот макрос, который будет делать то, что вы хотите. Этот макрос предполагает, что ваши вопросы в отдельном абзаце. Если они могут быть разбиты на абзацы, вы можете использовать цикл while, чтобы расширять выделенный символ за символом до тех пор, пока вы не нажмете заглавную букву, а не просто развернуть весь абзац.

Sub FormatQuestions() 'Finds everything that starts with a capital letter and ends with a question mark. Bolds it and puts it in all caps. 'Variable definitions Dim intTotalChars As Integer Dim intLoop As Integer Dim strTestChar As String Dim rngQuestionRange As Range Dim intCountQuestionMarks As Integer intTotalChars = ActiveDocument.Characters.Count For intLoop = 1 To intTotalChars strTestChar = ActiveDocument.Characters.Item(intLoop).Text If strTestChar = "?" Then intCountQuestionMarks = intCountQuestionMarks + 1 ActiveDocument.Characters.Item(intLoop).Select Selection.Expand wdParagraph Selection.Font.Bold = True Selection.Font.AllCaps = True End If Next intLoop End Sub

В предыдущей версии этого ответа я неправильно заметил, что Word не позволяет одновременно искать знаки абзаца и символы подстановки. На самом деле это так, но вам нужно использовать ^ 13 для абзаца вместо ^ p. (На этой странице от Microsoft перечислены специальные символы, которые можно использовать при поиске по шаблону: http://support.microsoft.com/kb/176776)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .