Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

макросы-2012

.pdf
Скачиваний:
13
Добавлен:
13.02.2015
Размер:
973.82 Кб
Скачать

1. СОЗДАНИЕ МАКРОСОВ НА ЯЗЫКЕ

VI SUA L B A SI C F OR A P P L I CAT I ON

1.1 Понятие макроса

На сегодняшний день Visual Basic for Application (VBA) – один из самых простых в изучении и применении языков программирования для автоматизации приложений, входящих в пакет Microsoft Office. Язык VBA

является общим языком программирования, подходящий для всех приложений.

Этот язык является версией популярного языка Visual Basic, но имеет отличия:

VBA используется для автоматизации существующего приложения (в

нашем случае приложения Excel);

VBA использует среду приложения;

выполнение VBA-приложений требует доступ к приложению, в

котором они созданы.

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

При записи макроса запоминаются все действия пользователя, будь то нажатие клавиши или выбор определенной команды меню, которые автоматически преобразуются в программный код на языке VBA.

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

Таким образом, макрос – это имеющая имя последовательность

заданных пользователем команд, и действий хранящаяся в форме

программы на языке VBA, которую может выполнить Excel.

1.2 Запись макросов

Для работы с макросами в приложении Excel имеется специальная группа

(рис.1). Для вызова этой панели необходимо выполнить последовательно команды: Разработчик → Код.

Рисунок 1 - Панель Код

Общий алгоритм записи макроса:

активизировать команду «Запись макроса» в группе Код;

в диалоговом окне «Запись макроса» присвоить имя создаваемому макросу. Первым символом имени макроса обязательно должна быть буква. В

имени макроса не допускается использование пробелов;

выполнить последовательность действий, которую нужно записать;

активизировать команду «Остановить запись» на панели Visual Basic.

Рассмотрим процедуру записи макросов на примере.

Пример 1

Создадим макрос, который изменяет шрифт и цвет в выделенном диапазоне ячеек. Эти действия в Excel можно выполнить несколькими способами (например, применение стилей, автоформатирование и т.д.).

1.Откройте новую книгу.

2.В ячейку А1 введите ваше имя, в ячейку А2 – фамилию, в ячейку А3

город, в котором Вы родились, в ячейку А4 – страну.

3.Установите курсор в ячейке А1.

4.В группе Код нажмите кнопку «Запись макроса». Появится диалоговое окно (рис. 2).

5.Введите название макроса «Цвет_Шрифт». Кнопка «Запись макроса»

изменится на кнопку «Остановить запись».

2

6. Одним из способов установите кегель – 18 пунктов, цвет – зеленый.

Подтвердите выполнение операции.

Рисунок 2 - Диалоговое окно Записи макроса

7. Активизируйте команду «Остановить запись» в группе Код. Запись макроса завершена.

При выполнении макроса Excel повторяет те же действия, которые Вы выполнили в процессе его создания. Продолжим работу с созданным макросом.

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

1.Установите курсор в ячейку А2.

2.Выполните команду Разработчик → Код → Макросы. Появится диалоговое окно (рис. 3).

Рисунок 3 - Диалоговое окно выбора макроса

3. Выделите макрос «Цвет_Шрифт» и щелкните по кнопке «Выполнить».

Шрифт в ячейке А2 станет зеленым и размером 18 пунктов.

3

1.3 Редактирование макросов

Во время записи макроса Excel запоминает Ваши действия и преобразуют их в код VBA. Можно просмотреть полученный код и отредактировать его,

если в этом есть необходимость.

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

Код → Макросы. Появится диалоговое окно Макрос.

2.Выделите макрос «Цвет_Шрифт» и щелкните по кнопке «Изменить».

Откроется окно редактора (рис. 4).

Рисунок 4 - Редактор Visual Basic используется для просмотра и редактирования кода VBA

При записи макроса мы выполнили всего два действия (изменение размера шрифта и цвета). Но в коде макроса записалась вся информация представленная на вкладке Шрифт диалогового окна Формат ячеек. Поэтому необходимо отредактировать текст макроса, чтобы не перегружать модуль не нужной информацией. Эту операцию можно произвести непосредственно в редакторе Visual Basic.

4

3. Отредактируйте текст макроса. В результате Вы получите следующий

текст (например):

Sub Цвет_Шрифт()

'Цвет_Шрифт Макрос

'Сочетание клавиш: Ctrl+я With Selection.Font

.Name = "Arial Cyr"

.Size = 18

.Color = -1003520 End With

End Sub

4.Закройте окно редактора и вернитесь на лист Excel.

5.В ячейку С4 введите слово Проверка, оставив ее активной.

6.Запустите макрос на выполнение. Исправленный макрос будет работать, как до редактирования.

1.4Назначениемакроса графическимизображениям

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

Для простоты рассмотрим предыдущий пример.

1.Откройте файл.

2.Используя панель Рисование, изобразите на рабочем листе любую автофигуру.

3.Активизируйте КЗМ выбранного Вами изображения и выберите команду Назначить макрос. Отобразится диалоговое окно Назначить макрос объекту.

4.Выберите макрос «Цвет_Шрифт» и подтвердите выполнение команды.

5.Щелкните вне графического изображения, чтобы снять выделение с объекта.

6.Введите в любую ячейку листа число 555 и оставьте ячейку активной.

7.Щелкните по графическому изображению. Макрос «Цвет_Шрифт» должен выполниться (рис. 5).

5

Рисунок 5 - Использование графического изображения и командной кнопки для запуска макроса

Ограниченность макросов

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

Эти ограничения приводят к необходимости создания программ на VBA.

2. Visual Basic for Application

2.1 Общие сведения о VBA

Объектно-ориентированное программирование (ООП) является в наше время наиболее популярной технологией программирования. Все современные языки программирования являются объектно-ориентированными, в том числе

Visual Basic, Java, а также С++, на котором написаны почти все программы

Windows.

6

Система программирования Visual Basic for Application занимает важное место в стратегии программных продуктов фирмы Microsoft.

VBA – относительно легкий язык программирования. Он прост в освоении и позволяет быстро получать ощутимые результаты – конструировать профессиональные приложения, решающие практически все задачи,

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

В основе ООП, управляемого событиями, лежат понятия класс,

инкапсуляция, объект, событие. В качестве объектом могут рассматриваться конкретные предметы, а также абстрактные и реальные сущности. Например,

объектами могут быть покупатель, фирма, банк, заказ на поставку и др.

В частном случае, в VBA объектом являются элементы пользовательского интерфейса, которые создаются на Форме пользователя

(UserForm) или на рабочем листе, а также рабочая книга и ее элементы. Доступ к объекту при ООП возможен только через его методы и свойства.

Каждый объект является представителем некоторого класса однотипных объектов, т.е. объект является экземпляром класса. Класс определят общие для его объектов методы и свойства.

Методы – это программные процедуры, реализующие некоторый алгоритм, который определяет взаимодействие объектов класса с внешней средой.

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

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

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

7

Инкапсуляцией называется объединение в объекте его свойств и возможных над ним операций (методов).

В ООП используется определенная форма записи при работе с объектами.

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

записывается следующим образом: ОБЪЕКТ.МЕТОД

Объекты характеризуются свойствами. Изменять свойство объекта можно с помощью операторов присвоения. Обращение к свойству объекта:

ОБЪЕК.ИМЯ_СВОЙСТВА

Практически все в реальной жизни можно описать с помощью терминологии объектов, свойств и методов. Например, Вы – объект под названием Человек. Ваши свойства включают такие «параметры»: Имя, Рост,

Вес, Цвет глаз, Возраст и т.д. Некоторые «методы», которые Вы можете выполнять: Спать, Учиться, Танцевать, Программировать.

Каждое приложение Microsoft Office имеет набор собственных,

характерных только для этого приложения объектов.

2.2 Объекты Excel

Объекты – то, чем можно управлять с помощью кода VBA.

Среди более 100 объектов Excel в программировании VBA чаще всего встречаются следующие:

Application (Приложение);

WorkBook (Рабочая книга);

WorkSheet (Рабочий лист);

Range (Ячейка, Диапазон ячеек);

UserForm (Пользовательская форма);

CommandButton (Кнопка).

Объектная модель Excel

8

Объектная модель описывает объекты приложения и связи между ними.

Объектная модель Excel построена в иерархической диаграммы, на вершине которой находится объект Application. Под этим объектом расположены другие объекты, среди которых – WorkBook. В терминологии VBA подчинение одного объекта другому называется вложением, т.е. объект WorkBook вложен в объект Application, а объект WorkSheet – в объект WorkBook.

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

Например, рабочие книги объединены в семейство рабочих книг – WorkBook, а

листы – в Sheets.

Иерархия определяет связь между объектами и показывает пути доступа к ним. Для того, чтобы указать объект, нужно задать на него ссылку. Полная ссылка на объект состоит из ряда имен объектов, вложенных последовательно друг в друга. Разделителями объектов являются точки. Названия листов или рабочих книг задаются в скобках и обрамляются кавычками. При указании адреса ячейки в скобках задают номер строки, а затем столбца.

Например, полная ссылка на ячейку А2 на листе Мастер в рабочей книге

Задание будет выглядеть следующим образом:

Application.WorkBooks(“Задание”).Sheets(«Мастер»). Range(“A2”)

Делать каждый раз полную ссылку на объект не обязательно, можно ограничиться неявной ссылкой, в которой можно опускать те объекты, которые в данный момент активны. Например, если активен рабочий лист Мастер, то для того чтобы указать ячейку А2, достаточно написать Range(“A2”).

Работа с объектами

Работа с любым объектом заключается в следующем:

задание свойств объекта;

определение значений свойств объекта;

выполнение методов объекта.

2.3Свойства, методы, события

9

Свойства

Свойство представляет собой разнообразные характеристики объекта, такие как размер,

цвет, положение на экране или состояний объекта, например, доступность или видимость.

Чтобы изменить характеристику объекта, можно просто изменить значение свойства.

Синтаксис определения значения свойства:

Объект.Имя_Свойства=Значение

Объект обозначает имя объекта, имя_свойства – соответственно имя свойства, которому присваивается значение. Имя объекта отделяется от имени свойства точкой.

Например:

Range(“A1”).Value=100 – поместить в ячейку А1 значение 100;

UserForm1.TextBox1.Text= “ ” – очистить (присвоить пустое значение)

полю ввода номер один в пользовательской форме один;

Range(“A2”).Font.Size=14 – в ячейке А2 установить кегель 14.

Методы

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

Синтаксис применения метода: Объект.Метод

Например,

Range(“D6:F9”).Clear – очистить диапазон ячеек D7:F9;

Range(“D6:F9”).Select – выделить диапазон ячеек D7:F9;

UserForm1.Show – показать форму 1;

UserForm2.Hide скрыть форму 2;

Application.Quit – закрыть приложение.

События

Событие представляет собой действие, распознаваемое объектом

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

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]