4

У меня есть текстовое содержимое в MS Office Word 2007.
Предположим что-то вроде следующего: Abcd Efgh .....

Теперь я хочу изменить цвет каждого A в контенте на красный.
Как я могу сделать это в MS Office Word 2007?

2 ответа2

4

Более простым способом было бы использовать "Найти и заменить" и использовать "Дополнительные параметры", где вы можете отформатировать тип, цвет и размер шрифта и снять флажок "Игнорировать регистр", чтобы вы получали только "А" вместо всех экземпляров "а" или "А".

3

Предполагая, что вы не хотите делать это вручную, я считаю, что основной способ автоматизации - использовать встроенный в Word язык программирования Visual Basic для приложений и написать скрипт / код для поиска заглавной буквы A и изменения ее цвета.

Вот один из способов сделать это, поместив код в активный документ Word. Я попробовал это в Word 2010, поэтому я не на 100% уверен, что в Word 2007 он будет работать так же, но, вероятно, так и будет.

Вы должны включить Marcos для запуска этого кода.

Поэтому в Word перейдите в «Сохранить как» и выберите «Документ Word с поддержкой макросов».

Затем вам нужно будет иметь возможность использовать инструменты разработчика в Word, поэтому щелкните правой кнопкой мыши на панели ленты и выберите "Настройка ленты":

альтернативный текст

И поставьте галочку рядом с "Разработчик" и нажмите "ОК".

альтернативный текст

В документе Word, в котором вы хотите выполнить эту магию (тот, который вы сохранили в виде документа Word с поддержкой макросов), щелкните на вновь отображаемой вкладке "Разработчик" и нажмите кнопку "Visual Basic", чтобы открыть Visual Basic.

альтернативный текст

Visual Basic для приложений откроется. В разделе "Объект Microsoft Word" дважды щелкните "ThisDocument", чтобы добавить код в этот документ Word.

альтернативный текст

В открывшемся окне вставьте следующий код Visual Basic:

Sub ChangeLetterColor()

' Enter the exact letter you want to globally search for in ThisDocument
' Case matters, "A" is not the same as "a"

Const LETTER_TO_CHANGE = "A"

' Enter one of the Word color Constant names to determine the color to change the letter to
' Example Word color constants are:
' wdBlack
' wdBlue
' wdBrightGreen
' wdDarkBlue
' wdDarkRed
' wdDarkYellow
' wdGray25
' wdGray50
' wdGreen
' wdPink
' wdRed
' wdTeal
' wdTurquoise
' wdViolet
' wdWhite
' wdYellow

Const COLOR_TO_CHANGE_TO = wdRed


For i = 1 To ThisDocument.Range.Characters.Count
    If ThisDocument.Range.Characters(i) = LETTER_TO_CHANGE Then
        ThisDocument.Range.Characters(i).Font.ColorIndex = COLOR_TO_CHANGE_TO
    End If
Next

End Sub

Теперь нажмите кнопку "Выполнить" на панели инструментов VBA и вернитесь к документу Word. Буква, определенная в скрипте, теперь должна иметь измененный цвет шрифта.

альтернативный текст


Вот другие примеры сценариев с похожими целями. Вы можете обратиться к ним для более подробной информации.

https://stackoverflow.com/questions/2396825/how-can-i-loop-through-every-letter-in-ms-word-using-vba

http://blogs.technet.com/b/heyscriptingguy/archive/2006/07/14/how-can-i-search-for-and-reformat-highlighted-text-in-a-word-document.aspx

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