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

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

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

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

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

Я просто получаю серый цвет назад.

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

vba excel-vba colors excel rgb

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

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

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

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

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

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

Читать еще:  Разъединить текст в ячейке в excel

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

Цвет шрифта и модель 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 цвет текста

I’m helping update Excel templates at my work and I need some help. I’m trying to format text in a textbox to be red and remove the border. I’m not sure how to add that property to my code. I’m not very good at coding. I was able to put the below together from dissecting other code I found.

I’ll eventually replace the absolute location values in the textbox code but I want it to work before I start making efficiency tweaks. Thanks for helping!

EDIT1: The below code works if I use either line 1 and 2 or Line 1 and 3. I’m not sure why I cannot use both in conjuction.

@ L L The way you are doing it with shapes.addtextbox do it like this:

If I keep typing in the text box then the rest is wrapped in red as well as whatever was in there with the first assignment, the command button in the screenshot executes the code above just to play around.

If you are going to keep adding and subtracting text to the textbox with code it is better if you get the shape named. Then you can grab the string that is in there and add to it . . This code below shows how you can name and then play around with your text box using VBA, adding text and so forth . . you can now change the color of certain text within the textbox as well, which is cool but another topic maybe?

So I hope this helps. The easiest way out if you have the developer tab is to add an ActiveX textbox (you will not be able to use .characters I don’t think) but you can assign the textbox name and many properties: text font, size, color (.forecolor) of that text box right in the properties tab or in vba as well with the name (easy to make all one color, hard to change only selected text in the textbox to a certain color in VBA this way), but for the whole box? easy.

If you do it this way and want to grab the contents of the textbox in vba, lets say you Dim a a comment string in your code and you name your activeX textbox TextBox1:

you have to use the first way of inserting a textbox (the way you are currently using and the first way in the answer) to change only selected text to a new color as far as I have found. Want to see it in action? Add this code below what is above but just before End Sub, now what was there previously is red, the string you define in the code block will be blue if found, in this case I lazily assign it to newText

I sincerely hope this helps you in your search of being a textBox jedi! Cheers — WWC

Читать еще:  Как в excel изменить направление текста

Цвет_шрифта

Данная функция является частью надстройки MulTEx

  • Описание, установка, удаление и обновление
  • Полный список команд и функций MulTEx
  • Часто задаваемые вопросы по MulTEx
  • Скачать MulTEx

Получение кода цвета шрифта ячейки

Функция возвращает числовой код цвета шрифта указанной ячейки.

Вызов команды через стандартный диалог:

Мастер функцийКатегория «MulTEx»Цвет_шрифта

Вызов с панели MulTEx:

Сумма/Поиск/ФункцииФорматированиеЦвет_шрифта

Синтаксис:
=Цвет_шрифта( D1 )

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

Индекс() — Необязательный аргумент. Определяет тип вывода числового кода. 0 — числовой код цвета из 16-миллионной палитры. 1 — числовой индекс цвета из 56 цветов. По умолчанию 0.

Важно: Функция не вычисляется при изменении цвета шрифта. Для пересчета функции после изменения параметров необходимо выделить ячейку и нажать F2Enter. Либо нажать сочетания клавиш Shift+F9(пересчет функций активного листа) или клавишу F9(пересчет функций всей книги).

Примечание: данная функция не учитывает ячейки, к котрым применено Условное Форматирование. Будет определен тот цвет шрифта, который установлен стандартными средствами.

Поделитесь своим мнением

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

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​
​ делает невозможным, при​

​ 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 Знак»,​
​ должна присутствовать кнопка​ Откуда мы знаем,​

Читать еще:  Excel удалить одинаковые строки

​ примера так и​​ как-то не совпадают?​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​

​Святой НякаЛайк​​Теперь дело за​ КАК. Заранее всем​ = 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)​: Может быть, посмотреть​
​ решить следующую проблему:​ и положить на​ макрос — запись​:​ в обоих столбцах;​
​И даже так​: И не покрасит.​

Похожие статьи

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