В предыдущих статьях мы рассмотрели основные объекты (рабочая книга и рабочий лист) структурной модели VBA Excel и принципы работы с ними.
В этой статье рассмотрим наверное самый основной объект модели - ячейка (диапазон ячеек). Именно с этим объектом приходится работать больше всего пользователю. Задавать значение ячеек, производить с ними арифметические и другие действия, изменять их оформление (цвет заливки, устанавливать вид границ ячеек, менять размеры и название шрифтов и т.п.).
1. Свойства объекта ячейка (Range)
Основными свойствами ячеек (диапазона) являются:
Areas - с помощью этого свойства, пользователь получает доступ к нескольким ячейкам или диапазонам ячеек, которые не имеют общих границ между собой.
C помощью следующей процедуры, в каждой ячейке выделенного диапазона можно проставить значение = 1
Dim r As Range
For Each r In Selection.Areas
r = 1
Next
Cells - один из способов, обратиться к ячейке рабочего листа использовать свойство Cells(14,4). Цифры в скобках означают номер строки и номер столбца соответственно. Иногда такой способ обозначения адреса ячейки предпочтительнее, чем способ указания прямого адреса ячейки (Range("D14")).
...
'поместить текст в ячейку D14
ActiveSheet.Cells(14,4) = "Значение"
...
Column - с помощью этого свойства можно получить номер столбца любой одиночной ячейки или номер первого столбца выделенного диапазона
...
'получение номер столбца ячейки
MsgBox ActiveSheet.Cells(10,5).Column
'получение номера столбца выделенного диапазона
MsgBox Selection.Column
...
Columns - данное свойство позволяет получить доступ к любому столбцу диапазона
...
'установить стиль 2 столбца выбранного диапазона как '"нейтральный"
Selection.Columns(2).Style = "Нейтральный"
...
Также с помощью этого свойства можно изменить ширину столбца. Применение этого свойста можно посмотреть в этой статье на моем канале (перейдите по ссылке)
Count - с помощью этого параметра пользователь может получить количество ячеек в диапазоне (в том числе выбранным с помощью мыши)
...
MsgBox "Выбранный диапазон содержит " & Selection.Cells.Count & " ячеек"
...
CurrentRegion - аналог команды выбрать все (Ctrl+A) с помощью которой выбирается область, состоящая из заполненных строк и столбцов
...
ActiveSheet.Cells(8,4).CurrentRegion.Select
...
EntireColumn - с помощью этого свойства можно выделить весь столбец. Сначала нужно указать нужную ячейку, затем с помощью этого свойства диапазон расширяется на весь столбец
...
ActiveSheet.Cells(8,4).EntireColumn.Select
...
EntireRow - аналог предыдущей команды, только теперь диапазон расширяется на всю строку
...
ActiveSheet.Cells(8,4).EntireRow.Select
...
Offset - с помощью этого свойства можно получить новую ячейку, указав количество строк и столбцов, на которые она отстоит от исходной
На языке VBA этот рисунок будет описан следующим образом
...
'записать в ячейку отстоящую на 2 строки вниз и 2 столбца вправо 'от ячейки B3 число 15
Range("B3").Offset(2,2).Value = 15
'записать в ячейку отстоящую на 2 строки вверх и 2 столбца влево 'от ячейки D5 число 15
Range("D5").Offset(-2,-2).Value = 15
Resize - изменение исходного диапазона на количество строк и количество столбцов
...
Selection.Resize(1,1).Select
...
Row - позволяет получить номер строки для первой ячейки диапазона или конкретной ячейки
...
MsgBox Selection.Cells(1,1).Row
...
Rows - с помощью этого свойства, пользователь получает доступ к любой строке диапазона.
...
'закрасить красным цветом вторую строку выделенного диапазона
Selection.Rows(2).Interior.Color = RGB(255,0,0)
...
2. Методы работы с ячейками (диапазонами ячеек)
Activate - делает активной заданную ячейку в определенном диапазоне
...
'в выделенном диапазоне активной, т.е. в нее будет вводиться 'текст если начать его набирать, будет ячейка во второй строке и '3 столбце
Selection.Cells(2,3).Activate
...
Delete - с помощью этой команды легко удаляются строки, столбцы и единичные ячейки. Дополнительно задается параметр направления сдвига, оставшихся после удаления ячеек
...
'удаление выбранного диапазона со сдвигом оставшихся ячеек влево
Selection.Delete xlShiftToLeft
...
Insert - добавление диапазона (строки, столбцы, ячейки). Аналогично предыдущей команде, задается параметр направления сдвига ячеек
...
'удаление выбранного диапазона со сдвигом оставшихся ячеек вправо
Selection.Insert xlShiftToRight
...
Select - выделение диапазона.
...
Range("A1:B5").Select
...
В этой статье и предыдущих двух:
#1. Как начать программировать в программе Excel
#2. Как начать программировать в Excel (работа с листами: изменить название, видимость, добавить и удалить)
вы познакомились с основными элементами объектной модели VBA Excel и теперь готовы для того чтобы непосредственно работать с ними (добавлять рабочие книги, листы, диапазоны, выделять строки и столбцы на рабочих листах и тп.).
В остальных статьях вы найдете примеры того, как работать с содержимым диапазонов (менять содержимое, управлять цветами текста, ячеек и т.д.).