
- •15.1. Как обратиться к ячейке
- •15.2. Методы Range
- •15.2.1. Activate - активация ячейки
- •15.2.2. AddComment - добавляем комментарии к ячейкам
- •15.2.3. AutoFit - автонастройка ширины столбцов и высоты строк
- •15.2.4. Clear, ClearComments, ClearContents, ClearFormats - очистка и удаление
- •15.2.5. Copy, Cut, PasteSpecial - буфер обмена
- •15.2.6. Delete - удалить диапазон
- •15.2.7. Merge, UnMerge - объединение ячеек
- •15.2.8. Select - выделение ячейки
- •15.3. Свойства Range
- •15.3.1. Address - адрес ячейки в формате a1
- •15.3.2. Areas - работа с несмежными выделенными областями
- •15.3.3. Borders - управление границами ячеек
- •15.3.4. Cells, Columns, Rows - ячейки, столбцы, строки
- •15.3.5. CurrentRegion - область, заполненная данными
- •15.3.6. Characters, Font - форматирование текста
- •15.3.7. Formula, FormulaR1c1 - формулы в ячейках
- •15.3.8. Interior - внешний вид ячейки
- •15.3.9. Name - работа с именованными диапазонами
- •15.3.10. Value - содержимое ячейки
15.3.8. Interior - внешний вид ячейки
Позволяет управлять внешним видом ячейки. В частности, настраивать ее цвет.
Например, такой код (листинг 15.23.) позволяет окрасить ячейку A1 в красный цвет
Range("A1").Interior.Color = vbRed
Листинг 15.23. Окраска ячейки в красный цвет (html, txt)
15.3.9. Name - работа с именованными диапазонами
15-11-Range Name.xlsm - пример к п. 15.3.9.
Позволяет узнать или установить имя ячейки или диапазона ячеек. Имена организованы в коллекцию Names. Именами удобно пользоваться для автоматического заполнения каких-либо заранее созданных таблиц.
Рассмотрим пример. Создадим на рабочем листе MS Excel таблицу такого вида (табл. 15.1.)
Таблица 15.1. Структура таблицы на листе MS Excel |
|
Имя |
(сюда будет введено имя) |
Возраст |
(сюда будет введен возраст) |
Дадим ячейкам, в которые должны быть введены имя и возраст, имена - cell_Name и cell_Age.
Для задания имени щелкните правой кнопкой мыши по ячейке и выберите в появившемся меню команду Имя диапазона (рис. 15.4.)
Рис. 15.4. Задаем имя ячейке
Заполните поле Имя, здесь же можно выбрать область видимости имени, ввести примечание и отредактировать, при необходимости, диапазон, для которого назначается имя.
Также для присвоения имени ячейке или диапазону вы можете воспользоваться полем, расположенным слева от строки формулы - в этом поле отображается имя активной ячейки. Просто впишите туда нужное имя.
Теперь добавим на лист кнопку и присвоим ее обработчику Click такой код (листинг 15.24.).
'Переменная для работы с ячейкой
Dim obj_Range As Range
'Переменная для адреса ячейки
Dim str_Name As String
'Так как имя ячейки возвращается
'в виде =лист1$A$1 мы вырезаем из
'переданного значения все, кроме знака =
str_Name = Mid( _
ActiveWorkbook.Names("cell_Name"), _
2, Len(ActiveWorkbook.Names("cell_Name")) - 1)
'Вводим в ячейку данные
Range(str_Name).Value = _
InputBox("Введите имя")
str_Name = Mid( _
ActiveWorkbook.Names("cell_Age"), _
2, Len(ActiveWorkbook.Names("cell_Age")) - 1)
Range(str_Name).Value = _
Val(InputBox("Введите возраст"))
Листинг 15.24. Работа с именованными ячейками (html, txt)
Здесь мы используем коллекцию Names объекта ActiveWorkbook, чтобы обратиться к конкретной ячейке. Здесь мы задавали имена ячеек вручную, но используя свойство Name можно задавать их в автоматическом режиме. Например, для присвоения ячейке A1 имени cell_A, надо выполнить такой код (листинг 15.25.)
Range("A1").Name = "cell_A"
Листинг 15.25. Программная установка имени ячейки (html, txt)
По такой же схеме осуществляется работа с именованными диапазонами ячеек.
15.3.10. Value - содержимое ячейки
15-12-Range Value.xlsm - пример к п. 15.3.10.
Позволяет узнать или установить содержимое ячейки. Того же эффекта можно добиться, если обращаться к ячейке без указания каких-либо свойств.
Рассмотрим пример - здесь мы получаем с помощью свойства Value значение, хранящееся в ячейке, если оно меньше 0 - записываем в ячейку модуль хранящегося в ней числа и меняем цвет ячейки на vbCyan (голубой) (листинг 15.25.)
Dim obj_Cell As Range
For Each obj_Cell In ActiveSheet.Range("A1:E8")
If obj_Cell.Value < 0 Then
obj_Cell.Value = Abs(obj_Cell.Value)
obj_Cell.Interior.Color = vbCyan
End If
Next