Меню сервис — макрос — запись макроса.
Выделяете текст, применяете к нему другой цвет, другой стиль, меняете его размер. Останавливаете запись макрорекордера.
Открываете редактор VBA (alt + F11), находите там записанный вами макрос и читаете его код
например,
Visual Basic | ||
|
первые три строки меняют: цвет выделения на красный, затем стиль выделенного фрагмента на «Заголовок 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
44.3k7 gold badges65 silver badges115 bronze badges
asked Jan 23, 2011 at 19:37
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
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, и каждое число представляет разные цвета. Ниже приведен список чисел и их цветов.
Давайте проверим это.
У нас есть значение в ячейке A1.
Мы хотим изменить цвет шрифта ячейки A1 на зеленый. Ниже приведен код.
Код:
Sub FontColor_Example1() Range («A1»). Font.ColorIndex = 10 End Sub
Это изменит цвет шрифта ячейки A1 на зеленый.
Мы также можем использовать свойство 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 для каждого цвета, чтобы построить цвета.
Ниже приведены несколько примеров для вас.
Ниже приведены некоторые примеры кода макроса.
Код:
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