Excel vba цвет шрифта

Функция =ЦВЕТШРИФТА(ЯЧЕЙКА) возвращает код цвета шрифта обозначенной ячейки. Функция имеет один неотклонимый аргумент.

  • ЯЧЕЙКА — ссылка на ячейку, цвет шрифта которой нужно найти.

Ниже представлен пример, демонстрирующий работу функции.

excel vba цвет шрифта

Следует направить внимание на тот факт, что функция не пересчитывается автоматом. Это соединено с тем, что изменение цвета шрифта ячейки Excel не приводит к пересчету формул. Для пересчета формулы нужно воспользоваться сочетанием кнопок Ctrl+Alt+F9

Для чего это необходимо?

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

Код на VBA

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

Я желаю установить цвет шрифта ячейки для определенного значения RGB.

Если я использую

Я получаю желтоватый цвет, но если я использую наиболее экзотичное значение RGB, к примеру:

Я просто получаю сероватый цвет вспять.

Почему я не могу употреблять какое-либо значение RGB? И понимаете ли вы обходные методы?

vba excel-vba colors excel rgb

4 ответа

7 Решение LeppyR64 [2008-12-18 17:33:00]

Excel употребляет лишь цвета в гамме цветов. Когда вы устанавливаете ячейку с внедрением значения RGB, она выбирает тот, который находится в гамме, которая является наиблежайшим совпадением. Вы сможете обновить гамму своими цветами, а потом избрать собственный цвет, и это будет работать.

Это дозволит для вас узреть, что в истинное время находится в гамме:

Это дозволит для вас установить гамму

Резвый совет: в гамме Excel есть два ряда цветов, которые изредка употребляются и обычно могут быть настроены на пользовательские значения без видимых конфигураций на листах остальных народов.

Тут приведен код для сотворения разумного набора цветов «мягенького тона», которые еще наименее оскорбительны, чем значения по дефлоту:

Public Sub SetPalePalette (необязательный wbk как Excel.Workbook) «Эта подпрограмма делает пользовательскую гамму бледноватых тонов, которую вы сможете употреблять для частей управления, заголовков и диалогов

** ЭТОТ КОД В ОБЩЕСТВЕННОМ ДОМЕНЕ ** ‘Найджел Хеффернан http://Excellerando.Blogspot.com

‘Цветовая гамма Excel имеет две сокрытые строчки, которые изредка употребляются: Строчка 1: цвета от 17 до 24 «Строчка 2: цвета от 25 до 32 — употребляется в SetGrayPalette в данной книжке

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

Dim bScreenUpdating As Boolean

Если bScreenUpdating = True, тогда Приложение .ScreenUpdating = False End If

‘Если Application.ScreenUpdating bScreenUpdating Then ‘Application.ScreenUpdating = bScreenUpdating ‘End If

Если wbk ничего не означает Установить wbk = ThisWorkbook End If

Если Application.ScreenUpdating bScreenUpdating Then Application.ScreenUpdating = bScreenUpdating End If

Public Sub SetGreyPalette() ‘Эта подпрограмма делает пользовательскую гамму greyshades, которую вы сможете употреблять для частей управления, заголовков и диалогов

** ЭТОТ КОД В ОБЩЕСТВЕННОМ ДОМЕНЕ ** ‘Найджел Хеффернан http://Excellerando.Blogspot.com

‘Цветовая гамма Excel имеет две сокрытые строчки, которые изредка употребляются: «Строчка 1: цвета от 17 до 24» — употребляется в SetPalePalette в данной книжке ‘Строчка 2: цвета от 25 до 32

‘Код для фиксации имеющегося опции обновления экрана и, по мере необходимости, «временно остановить обновление, пока эта процедура вызывает раздражающее ‘мелькает на дисплее. не забудьте вернуть обновление экрана при выходе!

Dim bScreenUpdating As Boolean

Если bScreenUpdating = True, тогда Приложение .ScreenUpdating = False End If

‘Если Application.ScreenUpdating bScreenUpdating Then ‘Application.ScreenUpdating = bScreenUpdating ‘End If

С данной книжкой .Цветочки (25) = & HF0F0F0 .Цветочки (26) = & HE8E8E8 .Цвета (27) = & HE0E0E0 .Цветочки (28) = & HD8D8D8 .Цветочки (29) = & HD0D0D0 .Цветочки (30) = & HC8C8C8 ‘& HC0C0C0’ Scipped & HC0C0C0 — это обыденный 25% сероватый цвет в главный гамме .Цвета (31) = & HB8B8B8 ‘Направьте внимание, что разрывы стают обширнее: человечий глаз наиболее чувствителен .Colors(32) = & HA8A8A8 ‘к изменениям в светлых серах, потому это будет восприниматься как линейная шкала Конец с

Интересно почитать:  Ранг excel

‘В правом столбце палитры Excel по дефлоту заданы последующие сероватые странички:

‘Цвета (56) = & H333333 ‘Цвета (16) = & H808080 ‘Цвета (48) = & H969696 ‘Цвета (15) = & HC0C0C0’ по дефлоту ‘25% сероватый’

‘Это обязано быть изменено для улучшения цвета «зазора» и создать цвета просто различимыми:

С данной книжкой .Цветочки (56) = & H505050 .Цветочки (16) = & H707070 .Цветочки (48) = & H989898 ‘. Цвета (15) = & HC0C0C0 Конец с

Если Application.ScreenUpdating bScreenUpdating Then Application.ScreenUpdating = bScreenUpdating End If

Вы сможете написать функцию CaptureColors и ReinstateColors для каждой рабочей книжки Open() и BeforeClose() событий. Либо даже для всякого листа активировать и деактивировать событие.

У меня есть код, лежащий кое-где, который делает «термический» градиент цвета для трехмерных диаграмм, что дает для вас прогресс от «прохладного» голубого до «жаркого» красноватого цвета за 30 два шага. Это труднее, чем вы могли пошевелить мозгами: градиент цветов, который будет восприниматься зрительной системой человека «равными интервалами» (которая работает по логарифмической шкале интенсивности и имеет нелинейные весы для красноватого, зеленоватого и голубого цветов как «мощные» цвета ) требуется время, чтоб выстроить — и для вас необходимо употреблять VBA для принуждения MS Chart к использованию цветов, которые вы указали, в обозначенном вами порядке.

Изменение цвета текста (шрифта) в ячейке рабочего листа Excel при помощи кода VBA. Характеристики ячейки (спектра) .Font.Color, .Font.ColorIndex и .Font.TintAndShade.

Внедрение палитры цветов для присвоения цвета тексту в ячейке листа Excel аналогично присвоению цвета фону ячейки, лишь свойство спектра .Interior меняем на свойство .Font.

Цвет текста и предопределенные константы

Цвет шрифту в ячейке можно присвоить при помощи предопределенных констант:

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

Цвет шрифта и модель RGB

Для конфигурации цвета текста в ячейке можно употреблять цветовую модель RGB:

Аргументы функции RGB могут принимать значения от 0 до 255. Если все аргументы равны 0, цвет — темный, если все аргументы равны 255, цвет — белоснежный. Функция RGB конвертирует числовые значения главных цветов (красноватого, зеленоватого и голубого) в индекс главный палитры.

Свойство .Font.ColorIndex

Свойство .Font.ColorIndex может принимать значения от 1 до 56. Это обычная ограниченная гамма, которая была до Excel 2007 и употребляется до сего времени. Поглядите примеры:

Таблица соответствия значений ограниченной палитры цвету:

excel vba цвет шрифтаОбычная гамма Excel из 56 цветов

Основная гамма

Основная гамма, начиная c Excel 2007, состоит из 16777216 цветов. Свойство .Font.Color может принимать значения от 0 до 16777215, при этом 0 соответствует черному цвету, а 16777215 — белоснежному.

Отрицательные значения характеристики .Font.Color

При записи в Excel макрорекордером макроса с присвоением шрифту цвета употребляются отрицательные значения характеристики .Font.Color, которые могут быть в границах от -16777215 до -1. Отрицательные значения соответствуют по цвету положительному значению, равному сумме большего индекса главный палитры и данного отрицательного значения. К примеру, отрицательное значение -8257985 соответствует положительному значению 8519230, являющегося результатом выражения 16777215 + (-8257985). Цвета текста 2-ух ячеек из последующего кода будут схожи:

Свойство .Font.TintAndShade

Еще при записи макроса с присвоением шрифту цвета макрорекордером добавляется свойство .Font.TintAndShade, которое осветляет либо затемняет цвет и воспринимает последующие значения:

  • -1 — затемненный;
  • — нейтральный;
  • 1 — осветленный.

При тестировании этого характеристики в Excel 2016, сравнивая затемненные и осветленные цвета, различия не увидел. Сравните сами:

В 1-ые три ячейки первого столбца записывается однообразный текст для удобства сопоставления цветов.

Excel VBA Font (Color, Size, Type, and Bold)

In VBA, there is a font object which you can use to change properties of the font from a cell, like, font color, font size, font type, and you can also apply bold and italic to the font.

Syntax

To use it, first, you need to define the cell address, which you can specify in the following ways.

VBA Font Color

To change the color of the font, you have two different ways:

1. Using Color Constants

Excel has a few color constants that you can use to apply color to the font. For example, if you want to apply the red color to the font in the cell A1, the code would be like below:

Интересно почитать:  Как в excel написать текст вертикально

In the above code, after the font object, color is the property and you have used the vbRed constant that tells VBA to apply the red color to the cell A1. There is a total of eight constants that you can use:

  1. vbBlack: Black
  2. vbRed: Red
  3. vbGreen: Green
  4. vbYellow: Yellow
  5. vbBlue: Blue
  6. vbMagenta: Magenta
  7. vbCyan: Cyan
  8. vbWhite: White

2. Using RGB

You can also use the RGB color code to apply color to the font. RGB is the combination of red, green, and blue colors, where you can create a custom color using the code. Let’s say if you want to apply a combination of green and blue color to cell A1 the code would be:

VBA Font Size

Font object also gives you access to the size property of the font. Let’s say you want to apply the font size of 16 to the font in the cell A1, the code would be:

If you want to apply font size to all cell in a worksheet you can use the following code:

And if only want to apply font size to cells where you have data, the code would be:

Or to the selected cell.

VBA Font Name

In the same way, you can also change the font name using the name property of the font object. Let’s say you want to apply “Consolas” font the cell A1. The code would be:

While using this property, you need to type the correct name of the font that you want to apply, and if somehow the name is incorrect, it won’t show you an error.

VBA Font Bold, Italic, and Underline

There are also properties that you can use to make the font bold, italic, and underline. Below are the codes that you need to write for this.

With these properties, you need to define TRUE or FALSE. So if the font is already bold or italic and you want to remove it, then you need to use FALSE to remove them.

Other Useful Font Properties

Here add a few more properties that can be useful for you (Strikethrough, Subscript, and Superscript).

Макросы для конфигурации формата ячеек в таблице Excel

В данном примере описаны макросы для автоматического форматирования либо спроса формата для ячеек таблиц Excel средствами VBA.

VBA-макрос: заливка, шрифт, полосы границ, ширина столбцов и высота строк

В процессе запыления данных сотрудниками отдела на неких листах были изменены форматы ячеек:

запыления планов работ.

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

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

Макросы Excel отлично управляются с форматированием ячеек на рабочих листах. Не считая того, делают это стремительно и в стопроцентно автоматическом режиме. Воспользуемся этими преимуществами и для решения данной задачки напишем собственный код VBA-макроса. Он поможет нам стремительно и неопасно сбрасывать форматы на начальный за ранее данный в шаблоне главной таблицы.

Чтоб написать собственный код макроса откройте особый VBA-редактор в Excel: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» либо нажмите комбинацию кнопок ALT+F11:

Код Visual Basic.

В редакторе сделайте новейший модуль выбрав инструмент «Insert»-«Module» и введите в него таковой VBA-код макроса:

VBA-код макроса.

Сейчас если нам необходимо сбросить форматирование таблицы на начальный формат отображения ее данных, выделите спектр ячеек A1:E20 и запустите макрос: «РАЗРАБОЧТИК»-«Код»-«Макросы»-«SbrosFormat»-«Выполнить». Итог работы макроса изображен ниже на рисунке:

Интересно почитать:  Excel удалить все гиперссылки в документе

сбросить форматирование таблицы на исходный формат.

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

Описание VBA-макроса для формата ячеек таблицы Excel

1-ая {инструкция} в коде, инспектирует выделены ли ячейки спектром. Если перед выполнением макроса выделил иной элемент листа, к примеру, график, тогда макрос запирается и последующие аннотации производиться не будут. В неприятные случаи будут форматироваться все выделенные ячейки по очереди в согласовании с определенными опциями форматирования:

  1. Текст в значениях ячеек выравнивается по центру горизонтально и вертикально.
  2. Включен построчный перенос текста.
  3. Все границы ячеек получают черную обыкновенной толщины непрерывную линию с черным цветом.
  4. Сброс цвета шрифта на авто.
  5. Удаляется неважно какая заливка ячеек.
  6. Ширина столбцов автоматом настраивается под текст в ячейках.
  7. Автоматом настроить высоту строк по содержимому ячеек.

Модификация начального кода макроса для форматирования

Если нужно создать так чтоб текст выравнивался не по центру относительно горизонтали, а по правую сторону ячейки, тогда измените константу xlHAlignCenter на xlHAlignRight. Она находиться в свойстве .HorizontalAlignment. Сделайте это последующим образом:

Таковым же образом можно выровнять текст по левую сторону изменив значение константы на xlHAlignLeft. Либо можно выровнять положение текста по ширине ячейки используя константу xlHAlignJustify.

Чтоб макрос сглаживал текст в ячейках по вертикали к низу, измените строчку кода, отвечающую за данную настройку форматирования. Измените константу, которая присваивается к свойству VerticalAlignment в последующий метод:

Если желаете выровнять текс к верху ячейки, тогда воспользуйтесь константой xlHAlignTop.

Если необходимо применить для границ ячеек толстую и пунктирную линию в голубом цвете, смодифицируйте аннотацию, отвечающую за формат линий:

Описание опции форматирования для линий границ ячеек. Мы будем получать различные доп типы линий границ если для характеристики LineStyle присваивать такие константы:

  • xlDoshDot – применяется для рисования пунктирных линий в границах ячеек;
  • xlDouble – отрисовывают двойную линию;
  • xlHairLine – отрисовывают узкую линию;
  • xlThick – для рисования весьма толстой полосы.

Для опции цвета линий Excel дает всего 8 констант для определенных цветов. Константы для опции цвета линий границ для характеристики Color:

  • vbBlack – темный;
  • vbWhite – белоснежный;
  • vbRed – красноватый;
  • vbGreen –зеленоватый;
  • vbBlue – голубий;
  • vbYellow – желтоватый;
  • vbMagenta – красный;
  • vbCyan – голубой.

Но по мере необходимости присвоить линиям границ остальные цвета можно заместо константы для характеристики Color записать функцию RGB(). Довольно только в аргументе данной функции указать код цвета по шкале от 0 и до 255.

Если необходимо применить толстую линию лишь для границ выделенного спектра, тогда перед аннотацией End With добавьте последующую строчку кода:

.BorderAround xlContinuous, xlMedium, vbBlack

Описание: В первом аргументе для способа BorderAround можно записать также иной стиль полосы. Во 2-м – толщину полосы, а в 3-ем – цвет. Константы, которые можно присвоить в качестве значений для этих аргументов можно употреблять те же, которые мы употребляли для параметров: LineStyle, Weight, Color.

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

Если желаете присвоить таковой же формат для не только лишь для первой строчки, да и для первого столбца выделенного спектра, тогда скопируйте и вставьте ниже эти 3 строки кода. Опосля в крайних 3-х строчках измените свойство Rows на Columns.

.Columns (1).Font.Bold = True

.Columns (1).Font.Italic = True

.Columns (1).Interior.Color = vbCyan

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

Полная версия измененного кода макроса смотрится так:

Пример работы модифицированного кода VBA-макроса:

Пример после изменений в коде.

В данном примере вы ознакомились с базисными способностями форматирования при помощи VBA-макросов. Уверен, что сейчас вы можете без помощи других отыскать практическое применение сиим начальным кодам.

Ссылка на основную публикацию
Adblock
detector