Vba excel цвет текста - IT Новости из мира ПК
Remkomplekty.ru

IT Новости из мира ПК
191 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel цвет текста

VBA Excel. Цвет текста в ячейке

Изменение цвета текста (шрифта) в ячейке рабочего листа 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 из 56 цветов

Основная палитра

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

Отрицательные значения свойства .Font.Color

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

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

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

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

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

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

VBA Excel. Цвет текста (шрифта) в ячейке

Изменение цвета текста (шрифта) в ячейке рабочего листа 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 из 56 цветов

Основная палитра

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

Отрицательные значения свойства .Font.Color

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

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

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

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

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

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 есть два ряда цветов, которые редко используются и обычно могут быть настроены на пользовательские значения без видимых изменений на листах других народов.

Читать еще:  Что делать если 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 по умолчанию заданы следующие серые страницы:

‘Цвета (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() событий. Или даже для каждого листа активировать и деактивировать событие.

У меня есть код, лежащий где-то, который создает «тепловой» градиент цвета для трехмерных диаграмм, что дает вам прогресс от «холодного» синего до «горячего» красного цвета за тридцать два шага. Это сложнее, чем вы могли подумать: градиент цветов, который будет восприниматься визуальной системой человека «равными интервалами» (которая работает по логарифмической шкале интенсивности и имеет нелинейные весы для красного, зеленого и синего цветов как «сильные» цвета ) требуется время, чтобы построить — и вам нужно использовать 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 из 56 цветов

Основная палитра

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

Отрицательные значения свойства .Font.Color

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

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

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

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

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

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

Excel vba цвет текста

VBA: изменение цвета шрифта (не работает ((()

​Смотрите также​​ = «» Then​
​ Range For Each​ Так как это​ Else c.Interior.ColorIndex =​ End If End​: Кроме ЯЧЕЙКА(«формат»;. ) со​
​: Чтобы именно формулами​ работать с фильтром.​ быть установлено значение​

​ wdRed Selection.Style =​​1. Менять цвет​Еще один такой​ может интересно кому​Но ведь тьма​ Sheets(shAccounting).UsedRange​
​ Step -1​
​Kompromis​Cells(toc, 1) =​ c In Target​
​ делает невозможным, при​

Читать еще:  Как изменить масштаб диаграммы в excel

​ 0 End If​​ Sub​ скудным функционалом, не​ цвет ячейки получать​Каким образов можно​
​ showmodal = false​

​ ActiveDocument.Styles(«Заголовок 2 Знак»)​​ (5 цвета) текства​
​ вопрос ни о​Описание надстройки приложите.​
​ рабочих примеров! Как-то​
​For i =​
​If a(i, colSN)​
​: Добрый день.​
​ Chr(Asc(Cells(toc — 1,​
​ If InStr(1, c.Value,​ необходимости, добавление столбцов​ Next End Sub​
​airdefence​ припомню стандартных функций​
​ это пользовательскую функцию​ определить цвет текста​
​Чтобы вызвать созданную​ Selection.Font.Size = 9​
​ в выделенной области;​
​ чем и влеплю​
​SLAVICK​
​ ведь люди воплощают?!​
​ UBound(a) To 4​
​ <> «» Then​
​Подскажите, пожалуйста, видимо​
​ 1)) + 1)​ «Вася», vbTextCompare) Then​ перед столбцом I.​airdefence​: Спасибо!​ отслеживающих цвет шрифта.​ писать надо.​ в ячейке, что​

​ в редакторе форму,​​ Selection.Font.Color = wdColorPlum​2. Изменять стиль​ замечание. Я же​: А у меня​
​Была в свое​
​ Step -1​If a(i, colSN)​
​ в лексике ошибка,​
​tochkaName = Cells(toc,​
​ c.Interior.ColorIndex = 3​ Т.е. чтоб весь​
​: Димит, можно я​
​airdefence​
​VectorXXX​
​Фродо​ бы обойтись без​
​ ложите на лист​ Selection.Font.Color = wdColorGreen​ текста (подчеркнутый стиль);​
​ уже писал:​ красит — см​
​ время надстройка BlackBox​If a(i, colsn)​
​ = TextBox3 Then​ почему не меняется​
​ 1)​ Else c.Interior.ColorIndex =​
​ лист проверялся на​
​ вас еще помучаю)?​
​: А можно это​
​: не всегда в​
​: If Range(«B23»).Font.Color =​
​ использования фильтра?​
​ ворда кнопку, в​

​ Selection.Font.Color = wdColorGray80первые​​3. Изменять размер​Цитата​
​ пример.​ для сравнения двух​

​ <> «» Then​​If a(i, colDate2)​ цвет шрифта при​endtochka = Cells(toc,​
​ 0 End If​
​ условия «Отправил запрос​

​ Я для своей​​ сделать с помощью​ примечаниях пишут спец​ 255 Then ‘действие​файл для примера​ её коде пишете​ три строки меняют:​ текста (+- 5);​
​SLAVICK, 20.04.2016 в​Правда немного поменял​ массивов и раскраской​
​If a(i, colsn)​ = «» Then​ положительном результате проверки?​ 1)​ Next End SubОтличный​ ТУ» и «Получены​
​ работы использую excel,​ target, чтоб при​ цена, бывают всякие​ если красный шрифт​ прикрепил — лист2​ «userform1.show», где «userform1″​

​ цвет выделения на​​На форме должна​ 12:41, в сообщении​ функцию, поскольку там​ в зависимости от​ = TextBox3 Then​IsKMTReady = False​200?’200px’:»+(this.scrollHeight+5)+’px’);»>If a(i, colSN) =​Cells(toc, 1 +​
​ вариант, только выделяется​
​ ТУ» и найдя,​
​ собственно по этому​

​ любом изменении на​​ акции и тд.​
​ Else ‘действие если​ — как должно​ — имя вашей​ красный, затем стиль​ присутствовать кнопка выхода​ № 12200?’200px’:»+(this.scrollHeight+5)+’px’);»>примера так​
​ были неизвестные переменные. ​

​ совпадений. ​​r.Cells(i, colsn).Font.ColorIndex =​Exit Function​
​ TextBox3 Then Font.ColorIndex​

​ 1) = 300​​ ячейка, а нужна​ ставил дату «today»​ и спрашиваю. В​
​ листе он проверял​VectorXXX​ шрифт не красный​
​ быть.​ формы.​ выделенного фрагмента на​

​ из формы.На листе​​ и не увидели​
​Мы же живого​Или наши случаи​ 15​End If​ = 15​Cells(toc, 1 +​ строка. Interior это​ в ячейке справа​ свое время я​ на условие?​
​: Фродо, Спасибо большое,​ End If​
​код макроса:​кнопка выхода из​ «Заголовок 2 Знак»,​
​ должна присутствовать кнопка​ Откуда мы знаем,​

​ примера так и​​ как-то не совпадают?​If a(i, colDate2)​
​End If​SLAVICK​ 2) = 300​ оператор цвета ячейки?​
​ и слева, соответственно.​ из интернета собрал​Димит​ взял Вашу функцию.​ts-79​
​Sub ПрайсМакро() Columns(«G:G»).Select​​ формы: весь код​ затем меняют размерность​ выхода из ms​ что Вы там​ не увидели. ​ (не дорос еще​ = «» Then​

(VBA Excel) Цвет текста примечания

​End If​​: А пример нам​With ActiveSheet.Shapes.AddShape(msoShapeOval, 300,​airdefence​
​Димит​ шаблон VBA кода​: Так:​airdefence​: Критичен ли цвет​ Selection.ClearContents Range(«H3»).Select ActiveCell.FormulaR1C1​ кнопки состоит из​

​ шрифта («кегль») на​​ word.​​ себе написали?​​Kompromis​
​ до вынесения самостоятельных​IsKMTReady = False​Next​

​ вместо Вас придумывать?​​ 300, diam, diam)​

MS WORD — изменить цвет текста и его стиль

​: Я поменял на​​: Почему нет?​ для себя -​Private Sub Worksheet_Change(ByVal​: Подскажите пожалуйста, как​
​ в столбце F?​ = «курс:» Range(«I3»).Select​ трех букв «end»​
​ 9​и так же.​
​lapin9126​: BlackBox-​
​ выводов, не догоняю​Exit Function​End Function​ или угадывать, что​.name = tochkaName​If InStr(1, c.Value,​
​Удалите строку IF​ вот его часть:​ Target As Range)​ в VBA в​
​Ведь есть еще​ ActiveCell.FormulaR1C1 = «25»​кнопка выхода из​команда Selection.Font.Color =​ должны быть три​: Здравствуйте, подскажите как​

​надстройка. После установки​​ какая проблема)​End If​Делаю порверку на​
​ Вы имеете ввиду​.Fill.ForeColor.RGB = vbGreen​ «Вася», vbTextCompare) Then​ NOT Intersect(Target, Range(«i2:i1500»))​Private Sub Worksheet_Change(ByVal​
​ Dim c As​ excel написать-​ и атрибут столбца​ Range(«G7»).Select ActiveCell.FormulaR1C1 =​ ms word: код​
​ . задает цвет​ кнопки на листе​ средствами VBA изменить​ появляется кнопка в​_Boroda_​End If​ сравнеине введенного в​ написав:​.Line.Weight = 0.2​ c.Font.ColorIndex = 3​ IS Nothing THEN​ Target As Range)​ Range, firstAddress As​Если где либо​ D (пустой/не пустой),​
​ _ «=IF(ISERR(SEARCH(«»*витяжки*»»,RC[-5])>0),RC[-1]*0.85,RC[-1]*0.88)» Range(«G7»).Select​ кнопки «Application.Quit»​ выделенного текста.​
​ (по пунктам: 1,2,3)​ цвет текста примечания.​ меню. Имеет интерфейс​: Не путайте процедуру​
​End If​ ТехВох3 с базой​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Font.ColorIndex = 15​.Line.ForeColor.RGB = vbGreen​ Else c.Font.ColorIndex =​ и соответствующий END​ If Target.Cells.Count >​ String Set c​ на листе есть​ который передает те​ Selection.AutoFill Destination:=Range(«G7:G205») Range(«G7:G205»).Select​Это было вкратце​
​Так, воспользовавшись макрорекордером,​P.S Я НЕ​With .TextFrame.Characters.Font .Name​ настроек как и​ и функцию. Если​Next​ данных и, если​
​Font — чего?​’.TextFrame2.TextRange.Text = tochkaName​ 0 End If,​ IF​ 1 Then Exit​ = Target.Find(«Вася», LookIn:=xlValues)​ слово «Вася», то​ же условия что​
​ ActiveSheet.Range(«$A$6:$F$205»).AutoFilter Field:=6, Criteria1:=vbRed,​ что да как.​ вы постигнете дзен​ ПРОШУ ВСЕ СДЕЛАТЬ​
​ = «Arial» .Size​ чего выводить. Основная​ у Вас код​
​End Function​ есть совпадение, выкрасить​ если TextBox а​[color=red][size=14]’вот здесь надо​

​ но не могу​​Или измените в​

Определение цвета текста в ячейке

​ Sub If Not​​ If Not c​ текст в данной​
​ и цвет в​ Operator:=xlFilterFontColor Range(«G7»).Select ActiveCell.FormulaR1C1​ Пробуйте, несите сюда​
​ начинаете разбираться в​ ЗА МЕНЯ, ПРОСТО​ = 10 .Bold​ функция — грубо​ начинается с Sub​Kompromis​
​ найденное в базе.​ — тогда так:​ поставить цвет текста[/size][/color]​ заставить выделять всю​
​ этой строке лимитирующий​ Intersect(Target, Range(«i2:i1500»)) Is​ Is Nothing Then​ строке меняет цвет.​ столбце F​
​ = «=RC[-1]» Range(«G7»).Select​ уточняющие вопросы.​ VBA!​ ОБЪЯСНИТЕ ЧТО ДА​
​ = False .ColorIndex​
​ говоря, сравнить два​ — это процедура,​: Хотел, грешным делом​ Никак не получается​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>TextBox3.Font.ColorIndex = 15​.TextFrame.Characters.Text = Cells(toc,​ строку, и соответственно,​ диапазон «i2:i1500″​ Nothing Then If​ firstAddress = c.Address​Условное форматирование не​Или там могут​ Selection.FillDown ActiveWindow.SmallScroll Down:=-138​

Читать еще:  Работа с vba в excel 2020

​Святой НякаЛайк​​Теперь дело за​ КАК. Заранее всем​ = 57 ‘​ столбца данных и​ если с Function​

​ ))))​​ (​_Boroda_​ 1)​
​ снимать выделение шрифта​Вообще то, если​ Target(1, 1).Value =​

​ Do Cells.Rows(c.Row).Interior.ColorIndex =​​ подходит. Спасибо.​ быть и другие​ Selection.AutoFilter Range(«I7»).Select ActiveCell.FormulaR1C1​: Создать программный продукт.doc​

​ рутиной — там​​ спасибо.​ так цвет не​ напротив каждой строки​ — это функция​Проверил ваш вариант. не​SLAVICK​

​: А если ячейки​​End With​ цветом.​
​ проверка диапазона требуется,​ «Получены ТУ» Then​ 3 Set c​Димит​ значения?​ = «=IF(RC[2]/R3C9-RC[-2]​VectorXXX​
​ же, в редакторе​Святой НякаЛайк​ меняет End With​
​ поставить метку:​
​ (UDF).​

​ красит ((​​: Конечно не получится​ a(i, colSN) (если​Exit Do​Димит​
​ то для того​ With Target(1, 2)​ = Target.FindNext(c) Loop​: Private Sub Vasya()​
​Если нет то:​vikttur​

​: Здравствуйте, помогите пожалуйста​​ VB создать форму​: Меню сервис -​Aleks777​1. Данные содержится​

​http://www.on-line-teaching.com/vba/lsn0109.html​​_Boroda_​ — что Вы​ это ячейка, конечно),​End If​

​: См. выше​​ что бы макрос​ .Value = Now​

VBA Excel: Если где либо на листе есть слово «Вася», то текст в данной строке меняет цвет

​ While Not c​​ Dim c As​=ЕСЛИ(D7=»»;ЕСЛИ(ЕОШ(ПОИСК(«*витяжка*»;B7)>0);F7*0,85;F7*0,88);F7)​: Может быть, посмотреть​
​ решить следующую проблему:​ и положить на​ макрос — запись​:​ в обоих столбцах;​
​И даже так​: И не покрасит.​

Установка цвета шрифта в VBA

Я хочу установить цвет шрифта ячейки для определенного значения 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 по умолчанию заданы следующие серые страницы:

‘Цвета (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() событий. Или даже для каждого листа активировать и деактивировать событие.

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

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×