Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 5-9 Основы языка VBA.doc
Скачиваний:
48
Добавлен:
21.11.2018
Размер:
1.35 Mб
Скачать
  1. Адресация ячеек

Основное назначение большинства прикладных программ – это обработка данных, вводимых пользователем. При программировании на VBA данные, введенные пользователем, можно хранить на рабочих листах. На них же можно записывать результаты обработки данных. Для выполнения указанных действий необходимо разобраться с адресацией ячеек посредством VBA.

Для доступа к листам активной рабочей книги применяются следующие объекты и свойства:

  • коллекция объектов Sheets; С помощью данной коллекции можно обратиться к нужному нам рабочему листу:

Sheets(«Наименование листа»)

В случае работы с несколькими рабочими книгами, в программной коде также необходимо явно указывать соответствующую рабочую книгу. Данный оператор возвращает объект типа Sheet – рабочий лист, который в свою очередь имеет свойство Cells типа Range (область);

  • объект Range, определяющий любой диапазон ячеек: одна ячейка, строка, столбец, другой произвольный диапазон;

  • свойство Cells, позволяющее обратиться к отдельной ячейке рабочего листа:

Cells(<номер строки>, <номер столбца>).Value

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

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

Приведем некоторые свойства объекта Range:

Свойства

Выполняемые действия и допустимые значения

Value

Возвращает значение из ячейки или заносит значение в ячейки диапазона. В данном примере переменной х присваивается значение из ячейки С1:

х = Range("C1").Value

В следующем примере в диапазон А1 : В2 введена 1:

Range("A1:B2").Value = 1

Count

Возвращает число объектов в наборе. В данном примере переменной х присваивается значение, равное числу строк диапазона А1: В2:

х = Range("A1:B2").Rows.Count

Font

Возвращает объект Font (шрифт). Объект Font имеет следующие свойства:

- Name — строка, указывающая имя шрифта, например "Arial Cyr"

- FontStyle — стиль, возможен Regular (обычный), Bold (полужирный), Italic (курсив), Bold italic (полужирный курсив)

- size — размер

- strikethrough — допустимы два значения: True (буквы имеют линию по центру, как будто они перечеркнуты) и False (не имеют линии по центру)

– Superscript — допустимы два значения: True (текст используется как верхний индекс) и False (не используется как верхний индекс)

- Subscript — допустимы два значения: True ; (текст используется как нижний индекс) и False (не используется как нижний индекс)

- underline — устанавливает тип подчеркивания, допустимыми являются значения:

• xlNone (нет подчеркивания);

• xlSingle (одинарное, по значению)

• xlDouble (двойное, по значению)

• xlSingleAccounting (одинарное, по ячейке)

• Accounting (двойное, по ячейке)

Например, в следующем примере устанавливается для диапазона A1:В2 полужирный шрифт, красного цвета и с высотой символов 14:

With Range("Al:B2").Font

.Size = 14

.FontStyle = Bold

.Colorlndex = 3

End With

Formula

Возвращает формулу в формате Al. Например, следующая инструкция вводит в ячейку С2 формулу “=$A$4+$A$10”:

Range("C2").Formula = "=$А$4+$А$10"

Text

Возвращает содержание диапазона в текстовом формате

ShrinkToFit

Допустимые значения: True (автоматическое изменение шрифта так, чтобы текст помещался в ячейку) и False (в противном случае)

Ниже приведены наиболее часто используемые методы объекта Range:

Методы

Выполняемые действия и допустимые значения

AutoFit

Автоматически настраивает ширину столбца и высоту строки

Сору

Копирует диапазон в другой диапазон или в буфер обмена

Cut

Копирует диапазон с удалением в указанный диапазон или в буфер обмена

Delete

Удаляет диапазон. В данном примере удаляется третья строка активной рабочей страницы:

Rows(3).Delete

Columns, Rows

Возвращают соответственно семейства столбцов и строк, из которых состоит диапазон.

В следующем примере переменным i и j присваиваются значения, равные количеству столбцов и строк в выделенном диапазоне соответственно:

i = Selection.Columns.Count

j = Selection.Rows.Count

Insert

Вставка ячейки или диапазона ячеек. В следующем примере вставляется новая строка перед четвертой строкой рабочего листа Лист1:

Worksheets("Лист1").Rows(4).Insert

Select

Выделение диапазона

Например, для ввода числа 34 в ячейку «A7» листа «Лист1» необходима команда:

Sheets(«Лист1»).Cells(7, 1).Value = 34

Для считывания значения ячейки «A7» листа «Лист1» применяется команда:

x = Sheets(«Лист1»).Cells(7, 1).Value

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

Dim Область As Range

‘ объявляем переменную Область типа Range

Set Область = Sheets(«Лист 1»).Range(«A1:C10»)

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

Область(7, 1).Value = 34

x = Область(7, 1).Value

далее в тексте программы к нужной ячейке рабочего листа «Лист 1» можно обращаться с помощью переменной Область как к массиву, указывая соответствующие номер строки и номер столбца.

Для указания диапазона можно использовать и другие способы, например, вместо записки Range(«A1:C10») можно указать номера соответствующих строк и столбцов с помощью их индексов:

Range(Cells(1, 1), Cells(10, 3))

Если в диапазоне указываются только имена столбцов или строк, то объект Range задает диапазон, состоящий из указанных столбцов или строк. Например, Range («A:C») задает диапазон, состоящий из столбцов A, B и C, а Range («2: 2») – из второй строки.

Так как ячейка является частным случаем диапазона, состоящим только из единственной ячейки, объект Range также позволяет работать с ней. Например, ячейка А2 как объект описывается Range ("A2") или Cells(1,2).

Демонстрируется выполнение практического задания