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.
Цвет текста и предопределенные константы
Цвет шрифту в ячейке можно присвоить с помощью предопределенных констант:
Напомню, что вместо индексов строк и столбцов можно использовать переменные. Список предопределенных констант смотрите здесь.
Цвет шрифта и модель 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
Цвет_шрифта
Данная функция является частью надстройки MulTEx
- Описание, установка, удаление и обновление
- Полный список команд и функций MulTEx
- Часто задаваемые вопросы по MulTEx
Скачать MulTEx
Получение кода цвета шрифта ячейки
Функция возвращает числовой код цвета шрифта указанной ячейки.
Вызов команды через стандартный диалог:
Мастер функций—Категория «MulTEx»— Цвет_шрифта
Вызов с панели MulTEx:
Сумма/Поиск/Функции — Форматирование — Цвет_шрифта
Синтаксис:
=Цвет_шрифта( D1 )
Ячейка( D1 ) — Ячейка, код цвета шрифта которой необходимо узнать. Если указан диапазон ячеек, но функция введена в одну ячейку, то будет возвращен цвет шрифта для левой верхней ячейки указанного диапазона.
Функция может быть использована как формула массива
Индекс() — Необязательный аргумент. Определяет тип вывода числового кода. 0 — числовой код цвета из 16-миллионной палитры. 1 — числовой индекс цвета из 56 цветов. По умолчанию 0.
Важно: Функция не вычисляется при изменении цвета шрифта. Для пересчета функции после изменения параметров необходимо выделить ячейку и нажать F2—Enter. Либо нажать сочетания клавиш 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
KompromisCells(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 = wdColorPlum2. Изменять стиль замечание. Я же: А у меня
Была в свое
Step -1If a(i, colSN)
в лексике ошибка,
tochkaName = Cells(toc,
c.Interior.ColorIndex = 3 Т.е. чтоб весь
: Димит, можно я
airdefence
VectorXXX
Фродо бы обойтись без
ложите на лист Selection.Font.Color = wdColorGreen текста (подчеркнутый стиль);
уже писал: красит — см
время надстройка BlackBoxIf a(i, colsn)
= TextBox3 Then почему не меняется
1) Else c.Interior.ColorIndex =
лист проверялся на
вас еще помучаю)?
: А можно это
: не всегда в
: If Range(«B23»).Font.Color =
использования фильтра?
ворда кнопку, в
Selection.Font.Color = wdColorGray80первые3. Изменять размерЦитата
пример. для сравнения двух
<> «» ThenIf 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 ThenIsKMTReady = False200?’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 шрифт не красный
быть. формы. выделенного фрагмента на
из формы.На листе и не увидели
Мы же живогоИли наши случаи 15End If = 15Cells(toc, 1 + строка. Interior это в ячейке справа свое время я на условие?
: Фродо, Спасибо большое, End If
код макроса:кнопка выхода из «Заголовок 2 Знак»,
должна присутствовать кнопка Откуда мы знаем,
примера так и как-то не совпадают?If a(i, colDate2)
End IfSLAVICK 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 = FalseNext
вместо Вас придумывать? 300, diam, diam)
MS WORD — изменить цвет текста и его стиль
: Я поменял на: Почему нет? для себя -Private Sub Worksheet_Change(ByVal: Подскажите пожалуйста, как
в столбце F? = «курс:» Range(«I3»).Select трех букв «end»
9и так же.
lapin9126: BlackBox-
выводов, не догоняюExit FunctionEnd Function или угадывать, что.name = tochkaNameIf 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 функция — грубо начинается с SubKompromis
найденное в базе. — тогда так: поставить цвет текста[/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 создать форму: Меню сервис -Aleks7771. Данные содержится
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): Может быть, посмотреть
решить следующую проблему: и положить на макрос — запись: в обоих столбцах;
И даже так: И не покрасит.