Объект Worksheet и коллекции Sheets и Worksheets

Каждая рабочая книга состоит из листов. Совокупность всех листов рабочей книги задается коллекцией Sheets. Основных типов листов в рабочей книге два – Worksheet и Chart, соответственно имеются две коллекции для каждого типа листов. На практике для этих коллекций чаще всего используется метод Add, добавляющий новый лист в книгу. Метод возвращает соответствующий объект в качестве результата. Добавленный лист становится активным. Свойство Count у всех коллекций показывает количество элементов 15 коллекции. Для Sheets оно равно количеству листов. Так, например, можно добавить в активную книгу новый лист перед последним листом, назвав его "Новый":

Set NewSheet = Sheets.Add(before:=Sheets(Sheets.Count))

NewSheet.Name = "Новый"

Ссылка на добавленный лист сохранена в переменной NewSheet класса Worksheet, которую далее в программе можно использовать для работы с этим листом.

Основные свойства и методы объекта Worksheet приведены в табл. 12.25 и 12.26.

Основные события объекта Worksheet следующие: Activate, Calculate, Change, Deactivate, SelectionChange.

Таблица 12.25

Основные свойства объекта Worksheet

Свойство

Описание

Range

Возвращает объект Range. Позволяет задать как отдельную ячейку, так и диапазоны ячеек. Свойство имеет параметры. Чаще всего в качестве значений параметра используются адрес ячейки, диапазон ячеек или выражение над диапазонами, содержащее операции объединения (запятая) и пересечения (пробел), например:

ActiveSheet.Range(“A5"),

ActiveSheet.Range(“A1:D25”),

ActiveSheet.Range(“A1:D25, E1:F25“),

ActiveSheet.Range(“A1:D25 B5:E28“)

Cells

Возвращает объект Range. Обычно свойство используется для указания конкретной ячейки с помощью ее номера строки и столбца. Например: ActiveSheet.Cells(5, 1) – это ячейка А5 активного листа

Rows, Columns

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

ActiveSheet.Rows(l), ActiveSheet.Columns(2)

Таблица 12.26

Основные методы объекта Worksheet

Метод

Описание

Activate

Активизирует рабочий лист

Delete

Удаляет рабочий лист

Copy

Создает копию листа, помещая ее перед или после указанного в параметре (Before, After) листа:

Worksheets("Лист1").Сору After:=Worksheets("Лист3")

Move

Перемещает рабочий лист в позицию, указанную параметром Before или After

Paste

Помещает содержимое буфера обмена на рабочий лист. Позицию вставки можно указать с помощью параметра Destination

Calculate

Выполняет вычисления формул рабочего листа

Объект Range

Это основной объект, с которым приходится работать программисту. Объект является коллекцией ячеек электронной таблицы, которая может содержать как единственную ячейку таблицы, так и столбец или строку, некоторую связную и не связную прямоугольную область, а также объединение и пересечение всех подобных элементов. Для создания объекта чаще всего используются свойства Range, Cells, Rows, Columns, рассмотренные выше. Основные свойства объекта приведены в табл. 12.27.

Таблица 12.27

Основные свойства объекта Range

Свойство

Описание

Value

Значение ячейки. Если она пуста, то возвращается значение Empty (можно проверить, вызвав функцию IsEmpty). Если объект Range содержит более одной ячейки, то возвращается массив значений (можно проверить, вызвав функцию IsArray). Функции IsNumber,LsText позволяют определить тип значения, хранимого в ячейке. Это свойство по умолчанию, поэтому часто опускается. Например, вместо Range("Al"). Value = 2 можно написать Rangc("Al”) = 2

Text

Возвращает строку текста, связанного с ячейкой. Имеет статус только для чтения

Formula

Формула в формате А1. Если формула присваивается диапазону, то относительные ссылки ведут себя как обычно. Например:

Range("A2:A5").Formula = "=А1+$С$1“

В ячейке А5 формула будет иметь вид -A4+SCS1. При считывании значения свойства возвращается текстовая строка (как в строке формул)

FormulaLocal

Формула в формате А1 с учетом языка пользователя (для неанглоязычных версий Excel). Например:

Range("B5“).FormulaLocal = "=ПИ()"

FormulaR1C1

Формула в формате R1С1. Например:

Range(“B1").FormulaRICl ="=R1C1+1"

FormulaR1C1Local

Формула в формате R1C1 с учетом языка пользователя (для неанглоязычных версий Excel)

CurrentRegion

Возвращает объект Range, в состав которого входит заданный диапазон. Границами возвращаемого объекта являются пустые строки и столбцы или границы таблицы. Например, так можно выделить диапазон, содержащий ячейку A2:

Range("A2“). CurrentRegion.Select

Address

Возвращает строку, задающую ссылку на объект Range. Вид возвращаемого значения определяют параметры свойства

Column, Row

Возвращают соответственно номер первого столбца или первой строки объекта Range

Font

Возвращает объект Font (шрифт). Например:

With Worksheets(nHncTl ").Range(”B5").Font

.Size = 14

.Bold = True

.Italic = True

End With

Если при записи макроса вы будете вставлять в ячейку какую-либо формулу, то Excel в тексте, скорее всего, использует свойство FormulaRlCl и вставленная формула покажется вам непонятной. Дело в том, что для ссылок на ячейки в Excel используются два стиля: А1 и R1C1. Обычно вы работаете со ссылками в стиле А1: ссылка состоит из имени столбца (обозначаются латинскими буквами) и номера строки. Признаком абсолютной ссылки является знак доллара перед именем строки или столбца. Макросы используют стиль R1C1. В этом случае после буквы R указывается номер строки ячейки, после буквы С – номер столбца. Для задания относительной ссылки в стиле R1C1 указывается смещение по отношению к активной ячейке (в квадратных скобках). Знак определяет направление смещения. Например, R[-1]C (относительная ссылка на ячейку, расположенную в предыдущей строке и в том же столбце), R[3]C[2] (относительная ссылка на ячейку, расположенную на три строки ниже и на два столбца правее), R2C2 (абсолютная ссылка на ячейку, расположенную во второй строке и во втором столбце), R[–1 ] (относительная ссылка на предыдущую строку), R (абсолютная ссылка на текущую строку).

Объект Range имеет около 80 методов. Все, что вы можете сделать с диапазоном ячеек в Excel, скорее всего реализовано с помощью метода объекта Range. Например, сортировка – это метод Sort, заполнение диапазона – метод AutoFill, выделение диапазона – метод Select и т.д. Большинство методов имеют параметры. Для изучения методов рекомендуется записать макрос, выполняющий нужную команду, и проанализировать полученный код. Описание методов можно найти в справочной системе MS Excel. Воспользуйтесь контекстной справкой (клавиша F1) или в редакторе Visual Basic откройте окно справки, в строке поиска наберите "Range Object Members" и перейдите по найденной гиперссылке.

Объект Selection

В MS Excel нет класса объектов Selection. В программе объект Selection мы получаем либо в результате работы метода Select, либо при вызове свойства Selection. Тип объекта может быть различным. Свойства и методы объекта Selection определяются типом выделенного объекта. Чаще всего объект Selection принадлежит классу Range, и тогда при работе с ним можно использовать все свойства и методы объектов класса Range.