Как изменить цвет кнопки в эксель
Пользователь
Регистрация: 18.01.2015
Сообщений: 29
Как изменить цвет кнопки VBA?
Как изменить цвет кнопки в VBA(кнопка создана на рабочем листе Excel)?
| Александр Шатило |
| Посмотреть профиль |
| Найти ещё сообщения от Александр Шатило |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,424
.. правой кнопкой
Нашедшего выход — затаптывают первым..
| Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Текст и цвет текста кнопки VBA | segail | Microsoft Office Excel | 17 | 27.11.2020 09:27 |
| Как изменить цвет кнопки (фон GROUPBOXa)? | realtype | Win Api | 0 | 21.05.2011 14:32 |
| Как программно изменить цвет кнопки в Delphi | Source-of-life | Помощь студентам | 8 | 13.04.2010 21:18 |
| Как изменить на форме цвет кнопки закрыть? | VintProg | Общие вопросы Delphi | 1 | 10.07.2009 17:08 |
| Как изменить цвет шрифта кнопки + объявление OnClick | Yury | Общие вопросы Delphi | 7 | 04.05.2007 04:55 |
Добавление и изменение цвета фона ячеек
Можно выделить данные в ячейках с помощью кнопки Цвет заливки, чтобы добавить или изменить цвет фона или узор в ячейках. Вот как это сделать:
-
Выберите ячейки, которые нужно выделить.
- Чтобы использовать другой цвет фона для всего таблицы, нажмите кнопку Выбрать все. При этом линии сетки будут скроются, но вы сможете улучшить читаемость, отобразив границы ячеек вокруг всех ячеек.

Чтобы использовать дополнительный цвет, выберите команду Другие цвета, а затем в диалоговом окне Цвета выберите нужный цвет.
Совет: Чтобы применить последний выбранный цвет, достаточно нажать кнопку Цвет заливки . Кроме того, в группе Последние цвета доступны до 10 цветов, которые вы выбирали в последнее время.
Применение узора или способов заливки
Если вас не устраивает сплошная заливка цветом, попробуйте применить узор или один из доступных способов заливки.
- Выделите ячейку или диапазон ячеек, которые нужно отформатировать.
- На вкладке Главная нажмите кнопку вызова диалогового окна Формат ячеек или просто нажмите клавиши CTRL+SHIFT+F.

- На вкладке Заливка выберите в разделе Цвет фона нужный цвет.

- Чтобы использовать двухцветный узор, выберите цвет в поле Цвет узора, а затем выберите сам узор в поле Узор. Чтобы создать узор со специальными эффектами, нажмите кнопку Способы заливки и выберите нужные параметры.
Совет: В поле Образец можно просмотреть выбранный фон, узор и способ заливки.
Удаление цвета, узора и способа заливки из ячеек
Чтобы удалить все цвета фона, узоры и способы заливки, просто выделите ячейки. На вкладке Главная нажмите стрелку рядом с кнопкой Цвет заливки и выберите пункт Нет заливки.

Цветная печать ячеек, включая цвет фона, узор и способ заливки
Если заданы параметры печати черно-белая или черновая (преднамеренно или потому, что книга содержит большие или сложные листы и диаграммы, вследствие чего черновой режим включается автоматически), заливку ячеек невозможно вывести на печать в цвете. Вот как можно это исправить:

- Откройте вкладку Разметка страницы и нажмите кнопку вызова диалогового окна Параметры страницы.
- На вкладке Лист в группе Печать снимите флажки черно-белая и черновая.
Примечание: Если цвета на листе не отображаются, возможно, выбран высококонтрастный режим. Если цвета не отображаются при предварительном просмотре, возможно, не выбран цветной принтер.
Если вы хотите выделить текст или числа, чтобы сделать данные более заметными, попробуйте изменить цвет шрифта или добавить цвет фона к ячейке или диапазону ячеек.


- Вы ячейка или диапазон ячеек, для которых нужно добавить цвет заливки.
- На вкладке Главная нажмите кнопку Цвет заливкии выберите нужный цвет.
Примечание: Эффекты узорной заливки для цветов фона недоступны для Excel в Интернете. Если применить любой из Excel на компьютере, он не будет отображаться в браузере.
Удаление цвета заливки
Если вы решите, что цвет заливки не нужен сразу после его вжатия, просто нажмите кнопку Отменить.

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

Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.
Как настроить динамическое изменение цвета кнопки средствами VBA
Разберем еще один пример, который опять будет связан с реакцией на перемещение мыши. Расположим на листе кнопку и сделаем так, чтобы при перемещении курсора мыши в области кнопки ее цвет менялся. Функциональность должна быть следующей:
- при расположении курсора мыши в левой верхней части кнопки ее цвет должен быть красным;
- при расположении курсора в правой верхней части кнопки цвет кнопки должен быть зеленым;
- если курсор находится в нижней левой части — кнопка должна быть синей;
- при расположении курсора в правой нижней части кнопка должна стать серой.
Чтобы реализовать требуемый эффект, оформим процедуру реакции на перемещение мыши так, как показано в листинге 1.17. Как видно из текста процедуры, для свойства Name кнопки использовано C1.
1 2 3 4 5 6 7 8 9 10 11 12 13
' Листинг 1.17. Процедура, реализующая динамическое изменение цвета кнопки Private Sub C1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If X < C1.Width / 2 And Y < C1.Height / 2 Then C1.BackColor - RGB(2 55, 0, 0) ElseIf X > C1.Width / 2 And Y < C1.Height / 2 Then C1.BackColor - RGB(0, 255, 0) ElseIf X < C1.Width / 2 And Y > C1.Height / 2 Then C1.BackColor - RGB(0, 0, 255) Else C1.BackColor - RGB(190, 190, 190) End If End Sub
‘ Листинг 1.17. Процедура, реализующая динамическое изменение цвета кнопки Private Sub C1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If X < C1.Width / 2 And Y < C1.Height / 2 Then C1.BackColor - RGB(2 55, 0, 0) ElseIf X >C1.Width / 2 And Y < C1.Height / 2 Then C1.BackColor - RGB(0, 255, 0) ElseIf X < C1.Width / 2 And Y >C1.Height / 2 Then C1.BackColor — RGB(0, 0, 255) Else C1.BackColor — RGB(190, 190, 190) End If End Sub
Прокомментируем моменты, которые появились впервые. А именно: значение переменной Y, которое передается в программу, представляет собой координату курсора мыши в области кнопки по вертикали. Полный размер кнопки по вертикали отражается в значении се свойства Height. Координата Y изменяется от верхнего угла кнопки к нижнему, а координата X изменяется от левого угла кнопки к правому. В первом условии процедуры If X . Проверяется находится ли курсор в левой верхней части кнопки. Если условие выполняется, то цвет кнопки устанавливается красным. Для установки цвета используется свойство кнопки BackColor и внутренняя функция RGB: C1.BackColor — RGB(255, 0, 0) .
Здесь RGB это функция Visual Basic, которая позволяет установить цвет объекта в виде сочетания трех основных цветов красного, зеленого и синего. Интенсивности каждого из этих основных цветов задаются в качестве трех входных параметров. При этом минимальное значение интенсивности цвета равняется 0 (в этом случае в составном цвете данный цветовой компонент просто отсутствует), а максимальное 255. В рассматриваемой строке задаются максимальная интенсивность для красного цвета и отсутствие компонентов зеленого и синего цветов. При подобном сочетании этих трех базовых цветов кнопка будет красной.
Продолжим рассмотрение текста процедуры, приведенной в листинге. Если первое условие не выполняется, то программа переходит к проверке второго условия: ElseIf X > C1.Width / 2 And Y . Если оно выполняется, то устанавливается зеленый цвет кнопки: C1.BackColor — RGB(0, 255, 0) . А если второе условие не выполняется, то проверяется третье условие: ElseIf X C1.Height / 2 Then .
Если оно истинно, то цвет кнопки становится синим, а если ложно, то получается, что курсор мыши не находится ни в одной из трех просмотренных областей. Из этого однозначно следует, что курсор мыши располагается в нравом нижнем квадранте, и кнопка закрашивается серым цветом. Программа, таким образом, готова; теперь следует вернуться в Microsoft Excel, выйдя из режима конструктора, и при перемещении мыши в пределах кнопки посмотреть на изменение ее цвета.
Свойство «Цвет фона (BackColor)»
С помощью свойства BackColor можно задать цвет для внутренних объектов элемент управления или раздел. Возвращает доступное для чтения и записи значение типа Long.
выражение.BackColor
выражение — обязательный аргумент. Выражение, которое возвращает один из объектов в списке «Применяется к».
Значения
Свойство BackColor содержит числовое выражение, соответствующее цвету, который используется для фона элемента управления или раздела.
С помощью построитель цветов можно настроить это свойство, нажав кнопку «Построить» справа от его Окно свойств. С помощью построитель цветов можно определить пользовательские цвета задней части элементов управления или разделов.
Это свойство можно также настроить с помощью кода Окно свойств, макрос или Visual Basic для приложений (VBA) либо с помощью команды «Цвет заливки» в разделе «Шрифт» (на вкладке «Конструктор» или «Формат» в зависимости от того, находитесь ли вы в конструкторе или макете).
В Visual Basic для приложений (VBA) для настройки этого свойства используйте числовое выражение. Этот параметр имеет тип данных Long.
Это свойство можно настроить по умолчанию, используя свойство стиль элемента управления по умолчаниюили DefaultControl в коде VBA.
Для объектовTable можно задать данное свойство с помощью команды Цвет заливки в разделе Шрифт на вкладке Данные или в коде VBA с помощью свойства DatasheetBackColor.
Замечания
Чтобы использовать свойство BackColor, необходимо задать для свойства BackStyle (Тип фона), если оно доступно, значение Normal (Обычный).
Пример
В следующем примере с помощью функции RGB задаются свойства BorderColor, BackColor и ForeColor в зависимости от значения поля txtPastDue . Чтобы задать эти свойства, можно также использовать функцию QBColor. Если поместить следующий код в событие Form_Current( ), параметры отображения для элемента управления будут заданы, как только пользователь откроет форму или перейдет к новой записи.
Sub Form_Current()
Dim curAmntDue As Currency, lngBlack As Long
Dim lngRed As Long, lngYellow As Long, lngWhite As Long
If Not IsNull(Me!txtPastDue.Value) Then
curAmntDue = Me!txtPastDue.Value
Else
Exit Sub
End If
lngRed = RGB(255, 0, 0)
lngBlack = RGB(0, 0, 0)
lngYellow = RGB(255, 255, 0)
lngWhite = RGB(255, 255, 255)
If curAmntDue > 100 Then
Me!txtPastDue.BorderColor = lngRed
Me!txtPastDue.ForeColor = lngRed
Me!txtPastDue.BackColor = lngYellow
Else
Me!txtPastDue.BorderColor = lngBlack
Me!txtPastDue.ForeColor = lngBlack
Me!txtPastDue.BackColor = lngWhite
End If
End Sub