Word VBA Макросы: Поменять цвет текста.

Автор Anton, 07 февраля 2017, 16:22

Anton

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

Администратор

Макрос делает красный цвет шрифта.
Sub Макрос1()
    '1. Цвет текста во всём файле.
    ActiveDocument.Range.Font.TextColor.RGB = 255
    '2. Цвет текста в обычных сносках (не концевых).
    ActiveDocument.StoryRanges(wdFootnotesStory).Font.TextColor.RGB = 255
End Sub

Ещё логичнее изменять цвет шрифта у стилей, чтобы новый печатаемый текст имел нужный цвет, а также чтобы становился нужный цвет у текста, вставляемого из буфера обмена.
Это можно сделать вручную или с помощью макроса:
Sub Макрос2()
    ' Настройка цвета шрифта у стилей.
    ActiveDocument.Styles("Обычный").Font.TextColor.RGB = 255
    ActiveDocument.Styles("Знак сноски").Font.TextColor.RGB = 255
    ActiveDocument.Styles("Текст сноски").Font.TextColor.RGB = 255
End Sub

Anton

Большое спасибо!
А подскажите пожалуйста еще, где найти цифры для всей палитры цветов для цвета текста.

Администратор

В ворде, в файле примените к тексту нужный цвет, выделите текст с нужным цветом.
Затем перейдите в VBA - View - Immediate Window - используйте этот код:
print Selection.Range.Font.TextColor.RGB
и подставьте полученное число в макрос.

Также у объекта "TextColor" есть инструмент для работы с цветами темы (вкладка "Главная" - группа "Шрифт" - стрелка кнопки "Цвет шрифта" - Цвета темы):
Selection.Range.Font.TextColor.ObjectThemeColor

Если после "ObjectThemeColor" поставить знак равно, то можно выбрать нужный цвет темы.
В ворде темы выбираются здесь: вкладка "Дизайн" - группа "Форматирование документа". Здесь в трёх местах: Темы, галерея тем (это эскизы тем), Цвета.

Anton

Большое спасибо за подробный ответ!

Anton

У меня в 2007 офисе ошибка в этой строке, а в офисе 2010 нет ошибки. Почему так, подскажите пожалуйста!
Selection.Range.Font.TextColor.RGB

Если это особенность офиса 2007, то тогда как в нем изменить цвет у всего документа?

Администратор

В каждой версии ворда есть особенности. В этом случае, в "Word 2010" свойство "Color" скрыто, но осталось работать. Вместо него, наверное, появилось свойство "TextColor".

Вот такие макросы работают во всех версиях ворда:

Sub Макрос1()
    '1. Цвет текста во всём файле.
    ActiveDocument.Range.Font.Color = 255
    '2. Цвет текста в обычных сносках (не концевых).
    ActiveDocument.StoryRanges(wdFootnotesStory).Font.Color = 255
End Sub

Sub Макрос2()
    ' Настройка цвета шрифта у стилей.
    ActiveDocument.Styles("Обычный").Font.Color = 255
    ActiveDocument.Styles("Знак сноски").Font.Color = 255
    ActiveDocument.Styles("Текст сноски").Font.Color = 255
End Sub

Anton


Посетитель 08.12.2023

Скажите пожалуйста как установить синий цвет, если красный это = 255

Администратор

Номер любого цвета вы можете так узнать.
В тексте документа выделите одну или несколько букв, примените нужный цвет, затем перейдите в VBA, отобразите область: View - Immediate Window, вставьте в эту область этот код и нажмите Enter:
print selection.Font.color