Управление стилем границы диапазона и объекта 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!