Особенности применения VBA в офисных приложениях
или «Быстрое» программирование

Основные объекты электронной таблицы Excel.

Объектно ориентированное программирование предполагает использование свойств объектов и событий происходящих на объектах или с ними. Поэтому вначале мы посмотрим на основные объекты электронной таблицы с точки зрения возможности их применения. Основной объект – само «Приложение» (“Application”). В тот момент, когда мы открывает на компьютере электронную таблицу (не открывая еще ни одной рабочей книги), мы начинаем работу с этим объектом. Как правило, ЭТ обычно открывается вместе с рабочей книгой (файлом с расширеиием. xls). Это означает, что происходит открытие объекта «Рабочая книга» (“Workbook”). Для этого объекта существует ряд событий, которые мы уже можем использовать. Эти события представлены в таблице 6.

Таблица 7.

События «Рабочей книги» (“Workbook”)

Activate

Книга стала активной

BeforeClose

Происходит перед закрытием книги

BeforeSave

Происходит перед сохранением книги

Deactivate

Книга перестала быть активной

Open

Книга открыта

SheetCalculate

Выполнен персчет листа книги

SheetDeactivate

Лист книги перестал быть активным

WindowActivate

Окно стало активным

WindowDeactivate

Окно перестало быть активным

WindowResize

Размеры окна изменились

Из свойств «Рабочей книги» выделим следующие (Таблица 8)

Таблица 8.

Основные свойства «Рабочей книги

FullName

Полное имя файла, в котором хранится книга

Name

Только имя файла

Names

Коллекция всех определенных имен ячеек и диапазонов

Path

Путь, где находится имя файла

Sheets

Коллекция всех листов книги

Styles

Коллекция стилей, присоединенных к книге

И в таблице 9 Вы можете познакомиться основными методами

НЕ нашли? Не то? Что вы ищете?

Таблица 9. Основные методы для «Рабочей книги».

Activate

Делает активным окно книги

Close

Закрывает книгу

Protect

Защищает книгу от внесения изменений с помощью пароля

Save

Сохраняет файл

SaveAs

Сохраняет файл под заданным именем

Unprotect

Снимает защиту с книги

Рабочая книга включает в себя коллекцию объектов «Лист книги» (“Worksheet”). Заметим, что имя коллекции “Worksheets”, и у коллекции, как у отдельного объекта есть свои свойства и методы.

Основные события для «Листа книги» – Activate (Лист стал активным), Calculate (Произошел пересчет листа), Change-(Содержимое одной из ячеек изменилось), Deactivate (Лист перестал быть активным), SelectionChange - (Изменилась выделенная область на листе). Основные свойства и методы «Листа книги» представлены таблицами 10 и 11. Когда Вы будете знакомиться с этими свойствами, Вы заметите, что некоторые свойства одновременно являются и объектами. Речь идет, например о коллекциях Cells, Columns, Names и др.

Таблица 10. Основные свойства «Листа книги»

Cells

Ячейки текущего листа. Возможно обращение к конкретным ячейкам

Columns

Столбцы текущего листа.

EnableCalculation

Разрешает или запрещает пересчет

EnableSelection

Рзрешает или запрещает выделение

Index

Номер листа в коллекции

Name

Имя листа

Names

Коллекция всех имен ячеек и диавпазонов листа

Next

Возвращает следующий лист книги

PageSetup

Создает доступ к параметрам страницы

Previous

Возвращает предыдущий лист книги

ProtectContents

Определяет, защищено ли содержимое листа

Range

Диапазон ячеек

Rows

Колонки текущего листа

UsedRange

Использованный диапазон ячеек

Visible

Определяет видимость объекта на рабочем листе

Таблица 11. Основные методы для листа книги

Activate

Делает лист активным

Add

Добавляет листы в рабочую книгу

Calculate

Выполняет пересчет листа

Copy

Копирует лист между указанными листами

Delete

Удаляет лист

Move

Перемещает лист в указанную позицию

Protect

Установка защиты на лист

SaveAs

Запись листа в отдельный файл

Select

Выделяет лист

И теперь наступила пора перейти к основному объекту в электронной таблице - объекту доступа к ячейкам и к данным в ячейках –Range. Обратите внимание, что имя этого объекта не имеет перевода, хотя можно попытаться по смыслу перевести как «Регион» или «Область». Это действительно очень многогранный объект, и одновременно коллекция с очень большим количеством различных свойств методов. Сначала давайте вспомним, что обращение к ячейкам через Range – объект реализуется несколькими способами.

l  Прямая адресация – Range (“A1:B3”),

l  через имя диапазона – Range(“itogi”),

l  через стандартный выделенный Range-объект: ActiveCell или Selection,

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

Последний вариант имеет серьезные отличия от остальных тем, что к нему нельзя применить некоторые методы и невозможно изменить ряд свойств ячейки, но в этом способе есть важное преимущество – номер строки и номер столбца могут быть именами переменных, а это расширяет возможности программирования. Однако в последних версиях VBA появился еще один способ обращения к ячейкам - одновременно через диапазон и ячейку внутри этого диапазона - Range(Cells(i, j), Cells(k, m)). Важность этого способа заключается в том, что здесь одновременно можно применять приемы работы, допустимые и для Range и для Cells. Отметим, что i и k во внутренних скобках означают соответственно верхнюю и нижнюю строку диапазона, а j и m – номера левого и правого столбцов выбранной области. Основные свойства и методы Range представлены в таблицах 12 и 13.

Таблица 12. Свойства объекта Range

Areas

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

Cells

Возвращает все ячейки листа, к любой из них можно обратиться через номер строки или столбца

Characters

Возвращает массив символов, представляющих содержащийся в ячейке текст

Column

Возвращает номер первого столбца, относящегося к заданному диапазону

Columns

Представляет все столбцы диапазона

ColumnWidth

Ширина столбцов в диапазоне

Count

Возвращает число ячеек в диапазоне

EntireColumn

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

EntireRow

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

Font

Доступ к параметрам шрифта

Formula

Возвращает, содержащуюся в ячейке константу или формулу в виде строки

FormulaHidden

Если лист защищен, при истинности этого свойства формула будет скрыта

FormulaR1C1

Возвращает, содержащуюся в ячейке или формулу в виде строки формата “R1C1”

Hidden

Делает строку или столбец скрытым или открытым

HorizontalAlignment

Определяет режим горизонтального выравнивания содержимого ячеек диапазона

Interior

Возвращает объект типа Interior(Интерьер)

Locked

Защищает или снимает защиту ячейки от изменеий при общей защите листа

Offset

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

Resize

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

Row

Возвращает номер строки для первой строки диапазона

RowHeight

Высота строк в диапазоне

Rows

Представляет все строки диапазона

Value

Содержимое ячейки

VerticalAlignment

Определяет режим вертикального выравнивания в ячейках диапазона

WrapText

Разрешает перенос непомещающихся строк

Таблица 13. Основные методы для объекта Range

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4