Главная | Случайная
Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Автоматическая запись макроса




Если, например, при работе с MS Excel у вас возникла необходимость несколько раз выполнить одну и ту же последовательность действий, то вы можете автоматически, с помощью макрорекордера (Macro Recorder), записать эту последовательность как макрос. Макрос записывается на языке VBA. Правила выбора модуля, в котором макрорекордер сохраняет макрос, являются достаточно сложными [1].Записанный макрос можно вызывать для выполнения из основного меню, а также путем нажатия назначенной комбинации клавиш. Текст макроса можно редактировать.

Пример.

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

Для этого:

  • выделим на листе Excel произвольный диапазон ячеек;
  • выполним команду Сервис | Макрос | Начать запись.Появится окно диалога «Запись макроса»,в котором введем имя макроса CellFormat,а также установим сочетание клавиш, по которому этот макрос можно запускать (выбрано Ctrl+f);

 

  • выберем команду Формат ячейки,на закладке Выравниваниеустановим Выравнивание по горизонтали - «по центру», а на закладке Видустановим цвет заливки ячеек - светло-бирюзовый;

· завершим запись макроса, нажав на кнопку «Остановить запись», или выполнив команду меню Сервис | Макрос | Остановить запись.

Теперь, чтобы отформатировать в данной книге Excel любой диапазон ячеек соответствующим образом (выровнять их содержимое «по центру» и выделить светло-бирюзовым цветом), необходимо выделить этот диапазон и запустить макрос CellFormatиз меню Сервис | Макрос | Макросы | Выполнить или нажав комбинацию клавиш Ctrl+f.

Проанализируем код макроса CellFormat, записанного при помощи макрорекордера (он записал его в модуль Module 1):

 

 

 

Макрорекордер использовал особую структуру:

With Object

' операторы, использующие свойства и методы Object End With

позволяющую ссылаться на ряд свойств или методов, принадлежащих одному и тому же объекту, без задания полной объектной ссылки каждый раз (подробнее об этом - в разделе 10).

В макросе CellFormat устанавливаются свойства выбранного объекта Selection (в нашем случае - любой диапазон ячеек Excel). Поскольку мы устанавливали только свойства:

HorizontalAlignment = xlCenter - выравнивание (Alignment) по горизонтали

«по центру» и
Interior.Colorlndex = 34 - задание фону ячейки (Interior - внутренность)

цвета с кодом 34 (светло-бирюзовый),

а остальные свойства ячейки не меняли, т.е. их значения используются по умолчанию, то исходный код макроса можно отредактировать вручную, удалив стандартные установки:

 

Замечание. Как отмечалось в разделе 2, строки комментариев начинаются знаком апострофа (одинарная кавычка) и выделены зеленым цветом.

Таким образом, при изучении приемов программирования на VBA, весьма полезным и эффективным является анализ кодов различных макросов, записанных автоматически при помощи макрорекордера.

Упражнение

С помощью макрорекордера записать макрос, который помещал бы в ячейки А6:А8 название и адрес некоторой фирмы. Проанализировать код записанного макроса. Скорректировать макрос - перейти на относительные ссылки.

Замечание. Рядом с кнопкой «Остановить запись» на панели инструментов Остановить записьнаходится кнопка «Относительные ссылки». Ее надо нажать сразу после начала записи.

Основные понятия объектно-ориентированного программирования

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

Объект (object) это программный элемент, который имеет свое отображение на экране, содержит некоторые переменные, определяющие его свойства, и некоторые методы, управляющие им.

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

Синтаксис: Объект.Свойство = ЗначениеСвойства

Например, инструкция: Application.Caption = "Пример" устанавливает новый заголовок окна (свойство Caption) приложения (объекта Application). Окно будет называться: «Пример»

Значения свойств можно использовать в выражениях, например: If Объект.Свойство = НекотороеЗначение Then ...

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

Вызов метода: Объект.Метод

К методам объекта можно обратиться, только используя объект. Например, Application.Quit - при помощи метода Quit (закрыть) закрывается приложение (объект Application).

Программные объекты, как и объекты реального мира, группируются в семейства (Collections). Другие названия: классы, коллекции. Например, все рабочие листы книги Excel образуют семейство Worksheets (множественное число от имени объекта Worksheet - одного рабочего листа).

Все объекты одного семейства имеют одни и те же (или подобные) свойства и методы.

Семейства можно использовать одним из двух способов: либо какое-либо действие совершается над всеми объектами семейства (например, WorkSheets.Delete - удалить все листы), либо со ссылкой на семейство выбирается конкретный объект для работы с ним (например, инструкция WorkSheets("Лист2").Select выбирает рабочий лист Лист2 из активной рабочей книги Excel).

В объектно - ориентированном программировании важным является понятие события.

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

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

Процедуры обработки событий имеют следующий синтаксис:

Private Sub ИмяОбъекта_Событие()

« код обработки события»

End Sub

VBA является идеальным инструментом для изучении основ объектно-ориентированного программирования, так как имеет реальные встроенные объекты MS Office: рабочие книги и листы, ячейки, документы, формы, выделенные фрагменты текста - всего более 100, их свойства и методы. Поэтому для иллюстрации объектов, свойств и методов не нужно обращаться к объектам, не имеющим никакого отношения к программированию.

Операторы программ VBA, использующие объекты, обычно выполняют одно или несколько из следующих действий:

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

• изменяют состояние или статус объекта установкой значения, сохраненного в определенном свойстве;

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

Отметим еще несколько понятий объектно - ориентированного

программирования:

Инкапсуляция — это скрытие информации. При объектно-ориентированном программировании возможен доступ к объекту только через его методы и свойства. Внутренняя структура объекта скрыта от пользователя, т.е. объекты — это самостоятельные сущности, отделенные от внешнего мира. Инкапсуляция позволяет изменять реализацию объектов любого класса без опасений, что это вызовет нежелательные побочные эффекты в программной системе. Это мощное средство обеспечивает многократное использование одного и того же программного кода, позволяя собирать программу из готовых модулей, как здание из отдельных кирпичиков, но различной архитектуры и функционального назначения.

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

Полиморфизм — это способность объектов выбирать операцию на основе данных, принимаемых в сообщении. Каждый объект может реагировать по-своему на одно и тоже сообщение. Например, команда Print будет по-разному воспринята черно-белым или цветным принтером.

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




Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2019 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных