Найти тему
Doc

#3. Как начать программировать в Excel (работа с ячейками листа)

Оглавление

В предыдущих статьях мы рассмотрели основные объекты (рабочая книга и рабочий лист) структурной модели 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 - с помощью этого свойства можно получить номер столбца любой одиночной ячейки или номер первого столбца выделенного диапазона

пример использования свойства Column к выделенному диапазону
пример использования свойства Column к выделенному диапазону
...
'получение номер столбца ячейки
MsgBox ActiveSheet.Cells(10,5).Column
'получение номера столбца выделенного диапазона
MsgBox Selection.Column
...

Columns - данное свойство позволяет получить доступ к любому столбцу диапазона

...
'установить стиль 2 столбца выбранного диапазона как '"нейтральный"
Selection.Columns(2).Style = "Нейтральный"
...

Также с помощью этого свойства можно изменить ширину столбца. Применение этого свойста можно посмотреть в этой статье на моем канале (перейдите по ссылке)

Count - с помощью этого параметра пользователь может получить количество ячеек в диапазоне (в том числе выбранным с помощью мыши)

...
MsgBox "Выбранный диапазон содержит " & Selection.Cells.Count & " ячеек"
...

CurrentRegion - аналог команды выбрать все (Ctrl+A) с помощью которой выбирается область, состоящая из заполненных строк и столбцов

В примере есть два диапазона - B4:I22 и K4:K22. Если поместить курсор в ячейку D8 и нажать на клавиши Ctrl+A, то будет выделен диапазон ячеек от B4 до I22, второй диапазон останется не выделенным, аналогично будет работать команда CurrentRegion
В примере есть два диапазона - B4:I22 и K4:K22. Если поместить курсор в ячейку D8 и нажать на клавиши Ctrl+A, то будет выделен диапазон ячеек от B4 до I22, второй диапазон останется не выделенным, аналогично будет работать команда CurrentRegion
...
ActiveSheet.Cells(8,4).CurrentRegion.Select
...

EntireColumn - с помощью этого свойства можно выделить весь столбец. Сначала нужно указать нужную ячейку, затем с помощью этого свойства диапазон расширяется на весь столбец

...
ActiveSheet.Cells(8,4).EntireColumn.Select
...

EntireRow - аналог предыдущей команды, только теперь диапазон расширяется на всю строку

...
ActiveSheet.Cells(8,4).EntireRow.Select
...

Offset - с помощью этого свойства можно получить новую ячейку, указав количество строк и столбцов, на которые она отстоит от исходной

Ячейка D5 (заливка синим цветом) смещена от исходной ячейки B3 (заливка коричневым цветом)  на 2 строки вниз и 2 столбца вправо и на оборот, ячейка B3 смещена от ячейки D5 на 2 строки вверх и 2 столбца влево
Ячейка D5 (заливка синим цветом) смещена от исходной ячейки B3 (заливка коричневым цветом) на 2 строки вниз и 2 столбца вправо и на оборот, ячейка B3 смещена от ячейки D5 на 2 строки вверх и 2 столбца влево

На языке VBA этот рисунок будет описан следующим образом

...
'записать в ячейку отстоящую на 2 строки вниз и 2 столбца вправо 'от ячейки B3 число 15
Range("B3").Offset(2,2).Value = 15
'записать в ячейку отстоящую на 2 строки вверх и 2 столбца влево 'от ячейки D5 число 15
Range("D5").Offset(-2,-2).Value = 15

Resize - изменение исходного диапазона на количество строк и количество столбцов

с помощью команды Resize выделенный на рисунке диапазон можно уменьшить до одной ячейки B4
с помощью команды Resize выделенный на рисунке диапазон можно уменьшить до одной ячейки B4
...
Selection.Resize(1,1).Select
...

Row - позволяет получить номер строки для первой ячейки диапазона или конкретной ячейки

В этом примере нам нужно получить номер строки для ячейки расположенной в первой строке и первом столбце выделенного диапазона
В этом примере нам нужно получить номер строки для ячейки расположенной в первой строке и первом столбце выделенного диапазона
...
MsgBox Selection.Cells(1,1).Row
...

Rows - с помощью этого свойства, пользователь получает доступ к любой строке диапазона.

...
'закрасить красным цветом вторую строку выделенного диапазона
Selection.Rows(2).Interior.Color = RGB(255,0,0)
...
-8

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 и теперь готовы для того чтобы непосредственно работать с ними (добавлять рабочие книги, листы, диапазоны, выделять строки и столбцы на рабочих листах и тп.).

В остальных статьях вы найдете примеры того, как работать с содержимым диапазонов (менять содержимое, управлять цветами текста, ячеек и т.д.).

Если статья Вам понравилась, ставьте лайки и подписывайтесь на канал. Дальше будет интересно.

Наука
7 млн интересуются