У меня есть текстовое содержимое в MS Office Word 2007.
Предположим что-то вроде следующего: Abcd Efgh .....
Теперь я хочу изменить цвет каждого A
в контенте на красный.
Как я могу сделать это в MS Office Word 2007?
У меня есть текстовое содержимое в MS Office Word 2007.
Предположим что-то вроде следующего: Abcd Efgh .....
Теперь я хочу изменить цвет каждого A
в контенте на красный.
Как я могу сделать это в MS Office Word 2007?
Более простым способом было бы использовать "Найти и заменить" и использовать "Дополнительные параметры", где вы можете отформатировать тип, цвет и размер шрифта и снять флажок "Игнорировать регистр", чтобы вы получали только "А" вместо всех экземпляров "а" или "А".
Предполагая, что вы не хотите делать это вручную, я считаю, что основной способ автоматизации - использовать встроенный в 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