Управление стилем границы диапазона и объекта Border
Свойство Borders объекта Range возвращает семейство Borders, элементы которого инкапсулируют данные об одной из граничных или диагональных линий данного диапазона. Допустимыми значениями индекса семейства Borders могут быть следующие постоянные XlBordersIndex: xlDiagonalDown, xlDiagonalUp, xlEdgeBottom, xlEdgeLeft, xlEdgeRight, xlEdgeTop, xlInsideHorizontai и xlInsideVerticai. Каждая из этих границ представляет собой объект Border, свойства которого перечислены в табл. 5.16.
Таблица 5.16. Свойства объекта Border
Свойство | Описание |
Color | Цвет границы, заданный при помощи RGB-модели |
Colorlndex | Цвет границы, заданный индексом соответствующего элемента цветовой палетки |
LineStyle | Задает стиль границы. Допустимыми значениями являются следующие постоянные XlLineStyle: xlContinuous, xlDash, xlDashDot, xlDashDotDot, xlDot, xlDouble, xlSlantDashDot и xlLineStyleNone |
Weight | Устанавливает толщину границы. Допустимыми значениями являются следующие постоянные XlBorderWeight: xlHairline, xlThin, xlMedium и xlThick |
Например, код листинга 5.41 задает верхнюю границу диапазона А2:С2 в виде толстой линии красного цвета, а его нижнюю границу — в виде зеленой пунктирной линии средней толщины.
Sub DemoBorders()
Dim rgn As Range
Set rgn = Range("A2:C2")
With rgn.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
.Color = RGB(255, 0, 0)
End With
With rgn.Borders(xlEdgeBottom)
.LineStyle = xlDash
.Weight = xlMedium
.Color = RGB(0, 255, 0)
End With
End Sub
Если все компоненты границы имеют одни и те же параметры, то для установки их значения можно воспользоваться не элементами, а всем семейством Borders, как это, например, делается в следующей инструкции для создания границы синего цвета у выделенной области.
|
|
Selection.Borders.Color = RGB(0, 0, 255)
Функции RGB и QBColor
Коды цветов в VBA часто задаются числами в шестнадцатеричной системе счисления. Вместо прямого указания шестнадцатеричного кода цвета довольно часто цвет удобнее задавать, используя функции RGB и QBColor. Функция RGB позволяет получить любой цвет смешением красного, зеленого и синего компонентов различной интенсивности.
RGB(Red, Green, Blue)
Здесь:
r Red — целое число из диапазона от 0 до 255, указывающее красный компонент цвета;
r Green — целое число из диапазона от 0 до 255, указывающее зеленый компонент цвета;
r Blue — целое число из диапазона от 0 до 255, указывающее синий компонент цвета.
В табл. 5.17 приведены значения параметров функции RGB для получения стандартных цветов.
Таблица 5.17. Значения параметров функции rgb для получения стандартных цветов
Цвет | Red | Green | Blue |
Черный | 0 | 0 | 0 |
Синий | 0 | 0 | 255 |
Зеленый | 0 | 255 | 0 |
Голубой | 0 | 255 | 255 |
Красный | 255 | 0 | 0 |
Розовый | 255 | 0 | 255 |
Желтый | 255 | 255 | 0 |
Белый | 255 | 255 | 255 |
Функция QBColor возвращает 16 основных цветов в зависимости от значения параметра (табл. 5.18)
|
|
QBCoior(color)
Здесь параметр color принимает целые числа из диапазона от 0 до 15.
Таблица 5.18. Соответствие между цветами и значением параметра функции QBColor
Число | Цвет | Число | Цвет |
0 | Черный | 8 | Серый |
1 | Синий | 9 | Светло-синий |
2 | Зеленый | 10 | Светло-зеленый |
3 | Голубой | 11 | Светло-голубой |
4 | Красный | 12 | Светло-красный |
5 | Розовый | 13 | Светло-розовый |
6 | Желтый | 14 | Светло-желтый |
7 | Белый | 15 | Насыщенный белый |
Доступ к отдельным ячейкам диапазона
Свойство Cells объекта Range, использованное без индексов, возвращает все ячейки диапазона, а с индексами — конкретную ячейку, специфицированную либо ее номером (один параметр), либо местоположением (два параметра).
Например, в следующем коде в диапазоне В1:СЗ все положительные значения заменяются на 1, а отрицательные — на — 1.
Dim с As Range
For Each c In Range("Bl:C3").Cells
If c.Value > 0 Then
c.Value = 1
Elself c.Value < 0 Then
c.Value = -1
End If
Next
Ту же задачу можно решить, используя свойство Cells с двумя параметрами, возвращающее ячейку, стоящую на пересечении указанной строчки и столбца. При этом надо помнить, что свойство Cells задает относительное расположение ячеек к диапазону.
Dim i As Integer
Dim j As Integer
For i = 1 To Range("B1:C3").Columns.Count
|
|
For j = 1 To Range("B1:C3").Columns.Count
If Range("B1:C3").Cells(i, j).Value > 0 Then
Range("B1:C3").Cells(i, j).Value = 1
Elself Range("B1:C3").Cells(i, j).Value < 0 Then
Range("B1:C3").Cells(i, j).Value = -1
End If
Next
Next
Если требуется задать абсолютное местоположение ячеек, то надо воспользоваться свойством cells рабочего листа, например, как это делается для задачи из предыдущего примера.
Dim i As Integer
Dim j As Integer
For i = 2 To 3
For j = 1 To 3
If Cells(i, j).Value > 0 Then
Cells (i, j).Value = 1
Elself Cells(i, j).Value < 0 Then
Cells (i, j).Value,= -1
End If
Next
Next
Дата добавления: 2019-02-12; просмотров: 198; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!