Особенности применения 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 |


