Макрос цвет шрифта word

Меню сервис — макрос — запись макроса.
Выделяете текст, применяете к нему другой цвет, другой стиль, меняете его размер. Останавливаете запись макрорекордера.
Открываете редактор VBA (alt + F11), находите там записанный вами макрос и читаете его код
например,

Visual Basic
1
2
3
4
5
6
    Selection.Range.HighlightColorIndex = wdRed
    Selection.Style = ActiveDocument.Styles("Заголовок 2 Знак")
    Selection.Font.Size = 9
    Selection.Font.Color = wdColorPlum
    Selection.Font.Color = wdColorGreen
    Selection.Font.Color = wdColorGray80

первые три строки меняют: цвет выделения на красный, затем стиль выделенного фрагмента на «Заголовок 2 Знак», затем меняют размерность шрифта («кегль») на 9
команда Selection.Font.Color = …. задает цвет выделенного текста.
Так, воспользовавшись макрорекордером, вы

постигнете дзен

начинаете разбираться в VBA!
Теперь дело за рутиной — там же, в редакторе VB создать форму и положить на неё все нужные кнопки, двойной щелчок по кнопке откроет редакцию её кода, здесь вам и пригодится то, что найдено рекордером!
Подскажу: чтоб при открытой форме можно было продолжать щелкать курсором по тексту, у формы должно быть установлено значение showmodal = false
Чтобы вызвать созданную в редакторе форму, ложите на лист ворда кнопку, в её коде пишете «userform1.show», где «userform1» — имя вашей формы.
кнопка выхода из формы: весь код кнопки состоит из трех букв «end»
кнопка выхода из ms word: код кнопки «Application.Quit»

Это было вкратце что да как. Пробуйте, несите сюда уточняющие вопросы.

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

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



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

  • Administrator
  • Сообщения: 2,254
  • Записан

Макрос делает красный цвет шрифта.
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


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



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

  • Administrator
  • Сообщения: 2,254
  • Записан

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

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

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


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


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

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



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

  • Administrator
  • Сообщения: 2,254
  • Записан

В каждой версии ворда есть особенности. В этом случае, в «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



  • Форум по VBA, Excel и Word

  • Word

  • Макросы в Word

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

АрхивОфис

К сожалению, в редакторе отсутствует возможность использовать две кнопки выбора цвета шрифта. Простейший макрос, который создается буквально за пару секунд, решает эту проблему.

Текстовый редактор Word позволяет раскрасить текст документа шрифтами разного цвета. Как правило, это делается для того, чтобы обратить внимание читателей на фрагменты текста или отдельные слова в документе

Стандартно в редакторе задан черный цвет шрифта, но эти установки можно изменить на свои собственные. Для этого в меню «Формат» выберите команду «Шрифт» или нажмите сочетание клавиш «CTRL+D». Откроется вот такое диалоговое окно:

В поле «Цвет текста» уже установлен параметр «Авто». Вы можете выбрать иной цвет, кликнув мышкой на любой значок цвета из открывающегося списка. Если вы хотите установить выбранный вами цвет для всех документов, которые вы будете создавать в дальнейшем, вы можете нажать кнопку «По умолчанию». В этом случае сделанные вами настройки шрифта сохранятся в шаблоне Normal.dot. Именно на основе данного шаблона создаются все документы в редакторе Word (стандартный режим).

Как только вы нажмете кнопку ОК для подтверждения изменения цвета шрифта, весь новый текст, который вы введете, будет отображен уже этим новым цветом. Если вы захотите вернуть черный цвет шрифта, вы можете либо вновь изменить настройки в диалоговом окне «Шрифт» либо, что гораздо быстрее, нажать сочетание клавиш «CTRL+Пробел».

Чтобы ускорить выбор цвета шрифта, на панели инструментов «Форматирование» находится соответствующая кнопка:

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

К сожалению, в редакторе отсутствует возможность использовать две кнопки выбора цвета шрифта и использовать каждую для своего цвета. Например, если в документе нужно один текст напечатать синим цветом, а другой — зеленым, то используя лишь одну стандартную кнопку выбора цвета шрифта, придется все время переключаться с одного цвета на другой. К тому же велика вероятность спутать похожие цвета. А если вывести на панель инструментов дубликат кнопки, то выбор цвета в одной кнопке автоматически приводит к установлению такого же цвета в другой кнопке. Замкнутый круг?

Нет, если создать простейший макрос и вывести его кнопку на панель инструментов. Итак, начнем.

1. Создайте пустой документ в Word.

2. Зайдите в меню «Сервис» (Tools), выберите команду «Макрос» (Macro) и из открывшегося списка выберите команду «Начать запись» (Record New Macro). Появится диалоговое окно, в котором следует назначить макросу имя (пусть будет FontColor) и щелкнуть на кнопке с изображением молотка. Если вы не хотите выводить кнопку макроса на панель инструментов, а желаете пользоваться сочетаниями клавиш, то можете кликнуть на кнопке с изображением клавиатуры:

3. Откроется новое диалоговое окно, в котором вам следует перейти на вкладку «Команды» и из правого поля перетащить на панель инструментов ваш новый макрос с названием Normal.NewMacros.FontColor. Кстати, позже или прямо сейчас вы можете изменить стиль кнопки, убрав текст и назначив для кнопки какое-нибудь подходящее изображение.

4. После этого на рабочем окне документа появится панелька с управляющими кнопками для записи макроса, как на скриншоте ниже:

5. Теперь будьте аккуратны, так как макрос уже пишется. Повторите действия по выбору цвета шрифта из диалогового окна «Шрифт», которые были описаны выше, или же выберите кнопкой «Цвет текста» на панели инструментов нужный вам цвет (в данном случае — синий).

6. Нажмите на кнопку с квадратиком в управляющей панели, чтобы остановить запись.

Всё. Можете закрыть этот документ без сохранения.

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

Для тех читателей, которые знают как работать со встроенным в Microsoft Word редактором Visual Basic, я просто приведу единственную строчку из кода макроса:

Selection.Font.Color = wdColorBlue

Аналогично можно поступить и в случае, если вам нужно выделять текст (не шрифт!) разными цветами, как это обычно делается фломастером.

Sub ColoredDigits()
'
' ColoredDigits Макрос
' Макрос записан 21.07.2011 VirtualLab
'
    Dim i As Long
    Selection.WholeStory
    Application.Browser.Previous
    Debug.Print Selection.StoryLength
    For i = 1 To Selection.StoryLength
        Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        'If (Asc(Selection.Characters.First) >= 48) And (Asc(Selection.Characters.First) <= 57) Then
        If IsNumeric(Selection.Characters.First) Then
            Debug.Print "Символ: "; Selection.Characters.First
            Debug.Print "ASCI code: "; Asc(Selection.Characters.First)
            Selection.Font.Color = wdColorGreen
        End If
        Selection.MoveRight Unit:=wdCharacter, Count:=1
    Next
    MsgBox "Ok!"
End Sub

Well, .Font.Color certainly used to work, at least in WD2007 — WD2013. It returned a long value that was either the specific RGB, for non-theme colours, or the equivalent of the HEX value of the combination of theme color and tint (or shade). Tony Jollans wrote a detailed article for Word 2007 that gives all the gory details of theme colours.

.Font.Color is undocumented because it has been deprecated and from testing in Word 365 I can confirm that it no longer works like it used to. It now only returns the theme colour not the tint or shade.

@Cindy Meister suggested .Font.TextColor which sounds as though it should give the values you seek. Unfortunately, although it returns a ColorFormat object complete with .ObjectThemeColor, .Brightness and .TintAndShade properties, the only valid information you will get is from .ObjectThemeColor, so that will not give you what you need.

To get all the information you require you have to set logic aside and examine .Font.Fill.ForeColor. (Like, really?! Font has a fill colour??) This will also return a ColorFormat object but this time all the properties return valid data.

You should therefore change:

rDestinationRange.Font.Color = rSourceColourRange.Font.Color

to:

With rDestinationRange.Font.Fill.ForeColor
    .ObjectThemeColor = rSourceColourRange.Font.Fill.ForeColor.ObjectThemeColor
    .Brightness = rSourceColourRange.Font.Fill.ForeColor.Brightness
End With

For completeness, the .Brightness property returns a value of -1 for 100% (i.e. no tint or shade), 0.6 for 40% lighter, 0.4 for 60% lighter, etc. Negative values are used for shades with -0.75 representing 25% darker and -0.5 50% darker.

It is also possible to set .Brightness to values that don’t correspond to those in the palette, e.g. 0.25 for 75% lighter, or -0.9 for 10% darker.

Я видел несколько статей по этой теме, но ни одна из них не помогла в моем случае, и большинство из них были для Excel. Я хочу изменить цвет шрифта, используя код vba в слове. Я пробовал Selection.Font.Color, но это тоже не сработало. Я знаю, что vba нужна переменная, в которой есть это конкретное слово, но я не могу этого сделать.

Кто-нибудь знает как это сделать?

Я использовал обходной путь, чтобы заменить цвет шрифта слова с помощью этого кода vba


With Selection.Find
        .ClearFormatting
        .Text = "hello"
        .Replacement.ClearFormatting
        .Replacement.Text = "hi"
        .Replacement.Font.Color = wdColorBlack 'I added this line
        .Execute Replace:=wdReplaceAll, Forward:=True, _
         Wrap:=wdFindContinue
    End With

Но я искал более конкретный способ замены цвета шрифта слова в vba.

1 ответ

Лучший ответ

Если вам нужен фрагмент кода, который можно использовать повторно, тогда должно быть что-то вроде этого:

Sub Tester()
    
    ActiveDocument.Content.Font.Color = vbBlack
    
    ColorText ActiveDocument.Content, "breaks", vbRed
    ColorText ActiveDocument.Content, "it", vbBlue
    ColorText ActiveDocument.Content, "with just", vbGreen

End Sub


Sub ColorText(rng As Range, strFind As String, clr As Long)
    With rng.Find
        .Text = strFind
        .Forward = True
        .Format = False
        .MatchCase = False
        .MatchWholeWord = True
        Do While .Execute()
            rng.Font.Color = clr 'rng is redefined as the found text
        Loop
    End With
End Sub


3

Tim Williams
13 Окт 2021 в 03:28

I want to read read through a Word document, find any text that is marked in any color other then black and delete it. How to find the text color in VBA?

Deduplicator's user avatar

Deduplicator

44.3k7 gold badges65 silver badges115 bronze badges

asked Jan 23, 2011 at 19:37

dps123's user avatar

Try the following code:

Sub DeleteNonBlack()
   Dim Wrd As Range

   For Each Wrd In ActiveDocument.Words
    If Wrd.Font.Color<>wdColorBlack and wrd.Font.Color<>wdColorAutomatic Then
      Wrd.Delete
    end if

   Next Wrd

End Sub

HTH

answered Jan 24, 2011 at 11:52

CaBieberach's user avatar

CaBieberachCaBieberach

1,7482 gold badges17 silver badges26 bronze badges

Цвет шрифта Excel VBA

Свойство VBA Font Color можно использовать для изменения цвета шрифта ячеек Excel с помощью кода VBA. Используя индекс цвета и свойство цвета с функцией RGB, мы можем изменить цвет шрифта несколькими способами.

Когда мы готовим информационную панель в excelПодготовка информационной панели в ExcelИнформационная панель в Excel — это расширенный инструмент визуализации, который предоставляет обзор важнейших показателей и точек данных для бизнеса. Преобразовывая необработанные данные в содержательную информацию, информационная панель упрощает процесс принятия решений и анализа данных. Подробнее, мы обычно тратим много времени на форматирование ячеек, шрифты и т. д. Часто мы чувствуем себя косметологами Excel, глядя на различные цвета. форматирования Excel. Например, изменение цвета шрифта на листе Excel — простая задача, но когда дело доходит до Excel, вы должны знать, как писать код VBA. Написание кода VBA Код VBA — это набор инструкций, написанных пользователем в программировании приложений Visual Basic. языка в редакторе Visual Basic (VBE) для выполнения определенной задачи. Подробнее об изменении цвета шрифта.

Чтобы изменить цвет шрифта, во-первых, нам нужно определить, какие ячейки мы собираемся изменить.

Диапазон («A1:A10»)

Затем нам нужно выбрать свойство FONT.

Диапазон («A1:A10»). Шрифт

Тогда что мы хотим сделать с этим шрифтом? Итак, выберите цвет.

Диапазон («A1:A10»). Шрифт. Цвет

Таким образом, нам нужно создать код для изменения цвета шрифта. Это не выглядит легко.

Но помните, вначале все кажется трудным. Позже вы освоитесь.

Оглавление

  • Цвет шрифта Excel VBA
    • Как изменить цвет шрифта с помощью VBA?
      • Пример №1 – Использование цветового индекса
      • Пример №2 – Использование свойства цвета
      • Пример №3 – Использование свойства цвета с функцией RGB
    • Рекомендуемые статьи

Цвет шрифта VBA

Как изменить цвет шрифта с помощью VBA?

.free_excel_div{фон:#d9d9d9;размер шрифта:16px;радиус границы:7px;позиция:относительная;margin:30px;padding:25px 25px 25px 45px}.free_excel_div:before{content:»»;фон:url(центр центр без повтора #207245;ширина:70px;высота:70px;позиция:абсолютная;верх:50%;margin-top:-35px;слева:-35px;граница:5px сплошная #fff;граница-радиус:50%} Вы можете скачать этот шаблон Excel цвета шрифта VBA здесь — Цвет шрифта VBA Шаблон Excel

Пример №1 – Использование цветового индекса

Свойство Color Index отличается от свойства Color в VBAColor Свойство В VBAVBA Color Index используется для изменения цветов ячеек или диапазонов ячеек. Эта функция имеет уникальную идентификацию для различных типов цветов.Подробнее. Используя числовые значения, мы можем изменить цвет ячеек и шрифтов.

Числа варьируются от 1 до 56, и каждое число представляет разные цвета. Ниже приведен список чисел и их цветов.

Пример цвета шрифта VBA 1

Давайте проверим это.

У нас есть значение в ячейке A1.

Пример цвета шрифта VBA 1-1

Мы хотим изменить цвет шрифта ячейки A1 на зеленый. Ниже приведен код.

Код:

Sub FontColor_Example1() Range («A1»). Font.ColorIndex = 10 End Sub

Это изменит цвет шрифта ячейки A1 на зеленый.

Пример VBA FontColor 1-2

Мы также можем использовать свойство CELLS для изменения цвета шрифта.

Код:

Sub FontColor_Example1() Cells(1, 1).Font.ColorIndex = 10 End Sub

Таким образом, мы можем использовать числа от 1 до 56, чтобы применить желаемый цвет к шрифту.

Пример №2 – Использование свойства цвета

Color Index имеет очень ограниченное количество цветов от 1 до 56, но с помощью свойства COLOR мы можем использовать 8 встроенных цветов: vbBlack, vbRed, vbGreen, vbBlue, vbYellow, vbMagenta, vbCyan, vbWhite.

Для этих цветов нам не нужно указывать какие-либо числа. Скорее, мы можем получить к ним доступ, используя их имя, как показано выше. Ниже приведен пример кода для всех 8 цветов.

Код:

Sub vbBlack_Example() Range(«A1»).Font.Color = vbBlack End Sub

Код:

Sub vbRed_Example() Range(«A1»).Font.Color = vbRed End Sub

Код:

Sub vbGreen_Example() Range(«A1»).Font.Color = vbGreen End Sub

Код:

Sub vbBlue_Example() Range(«A1»).Font.Color = vbBlue End Sub

Код:

Sub vbYellow_Example() Range(«A1»).Font.Color = vbYellow End Sub

Код:

Sub vbMagenta_Example() Range(«A1»).Font.Color = vbMagenta End Sub

Код:

Sub vbCyan_Example() Range(«A1»).Font.Color = vbCyan End Sub

Код:

Sub vbWhite_Example() Range(«A1»).Font.Color = vbWhite End Подпример №3 — Использование свойства цвета с функцией RGB

Мы видели, что у нас есть только 8 встроенных цветов для работы. Но нам нужно использовать функцию RGB, чтобы иметь разные цвета. Помимо встроенных цветов, мы можем создавать наши цвета с помощью VBA VBA RGBVBA RGBRGB также можно назвать красным, зеленым и синим, эта функция используется для получения числового значения значения цвета, эта функция имеет три компонента: диапазон, и они красный, синий и зеленый, другие цвета рассматриваются как компоненты этих трех разных цветов в функции VBA.

Посмотрите на синтаксис функции RGB.

RGB (красный, зеленый, синий)

RGB означает «красный, зеленый и синий». Поэтому нам нужно предоставить числа от 0 до 255 для каждого цвета, чтобы построить цвета.

Ниже приведены несколько примеров для вас.

Пример VBA FontColor 3

Ниже приведены некоторые примеры кода макроса.

Код:

Sub RGB_Example() Range(«A1»).Font.Color = RGB(0, 0, 0) ‘Изменить цвет шрифта на черный End Sub

Код:

Sub RGB_Example() Range(«A1»).Font.Color = RGB(16, 185, 199) ‘Цвет шрифта будет этим End Sub

Код:

Sub RGB_Example() Range(«A1»).Font.Color = RGB(106, 15, 19) ‘Цвет шрифта будет этим End Sub

Код:

Sub RGB_Example() Range(«A1»).Font.Color = RGB(216, 55, 19) ‘Цвет шрифта будет этим End Sub

Рекомендуемые статьи

Эта статья была руководством по цвету шрифта VBA. Здесь мы узнаем, как изменить цвет шрифта, используя индекс цвета VBA, свойство цвета с функцией RGB вместе с примерами и загрузим шаблон Excel. Ниже приведены некоторые полезные статьи Excel, связанные с VBA:

  • Примеры VBA
  • ЧДир ВБА
  • Альтернативный цвет строки в Excel

Понравилась статья? Поделить с друзьями:
  • Макрос фильтрации столбца в excel
  • Макросы excel для построения диаграмм
  • Макросы excel для новичков
  • Макрос фильтр по столбцам в excel
  • Макросы excel для начинающи