Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум13 по Excel (пр.17%2C Макросы).docx
Скачиваний:
8
Добавлен:
06.09.2019
Размер:
2.18 Mб
Скачать

13

Практическая работа №17.

Тема: Макросы.

Немного теории.

Рассмотрим средства создания макросов, без которых невозможно автоматизировать работу пользователя. Макрос – это программа, состоящая из списка команд, которые должны быть выполнены под действием приложения (а не операционной системы, как обычная программа). Макрос служит для объединения нескольких различных действий в одну процедуру. Такой список команд состоит, в основном из макрооператоров, тесно связанных с командами приложений из MS Office. Большая часть макрооператоров соответствует командам меню или параметрам, которые задаются в диалоговых окнах.

Можно выделить три основные разновидности макросов:

1) Командные – наиболее распространенные макросы. Обычно состоят из операторов, эквивалентных тем или иным командам меню или параметрам диалоговых окон. Их основным предназначением является выполнение действий, аналогичных команда меню. Например, изменение рабочего листа или рабочего пространства Excel, сохранение, вывод на печать и т.п. Таким образом, в результате выполнения макроса вносятся изменения либо в обрабатываемый документ, либо в общую среду приложения.

2) Пользовательские функции – работают аналогично встроенным функциям Excel. Их отличие от командных макросов в том, что они используют значения передаваемых им аргументов, производят некоторые вычисления и возвращают результат в точку вызова, но не изменяют среду приложения.

3) Макрофункции – представляют собой сочетание командных макросов и пользовательских функций. Также как и пользовательские функции, они могут использовать аргументы и возвращать результат, и также способны ещё изменять среду приложения. Чаще всего макрофункции вызываются из других макросов и активно используются для модульного программирования. Если необходимо в различных макросах выполнить ряд одинаковых действий, то эти действия обычно выделяются в отдельную макрофункцию (подпрограмму).

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

В период разработки макросов следует помнить о последовательности действий, связанной с их разработкой:

Логическая разработка процедуры (необходимо точно определить, что следует получить в результате выполнения макроса и какова логическая последовательность действий для получения результата);

Подготовка документа (произведите предварительные действия, которые не нужно включать в процедуру: например, создание нового рабочего листа или перемещение в конкретную рабочую часть листа);

Запись макроса с помощью макрорекордера. Макрорекордер – представляет собой транслятор, создающий программу (макрос) на языке VBA, которая является результатом перевода на языке VBA действий пользователя с момента запуска макрорекордера до окончания записи макроса. Запись макроса начинается с выполнения команды: Разработчик → Код → Запись макроса. В открывшемся диалоговом окне устанавливаются параметры описываемой процедуры (её имя, описание, сочетание клавиш для её выполнения, указание для каких документов доступен макрос), далее следует переход в режим записи макроса (на экране кнопка Запись макроса изменится на кнопку Остановить запись). Кроме того, кнопка Пауза также станет активной, если на время вы захотите приостановить запись макроса и выполнить другие действия с документом. Чтобы остановить запись макроса выполняют команду: Разработчик → Код → Остановить запись.

Просмотр и редактирование созданной процедуры. Для этого выполните команду: Разработчик → Код → Макросы → в открывшемся диалоговом окне Макрос выберите в списке имя нужного макроса нажмите кнопку Изменить откроется главное окно редактора VBA и окно Модуль (Module) с текстом выбранного макроса внесите необходимые изменения и закройте окно редактора.

Выполнение макроса. Для этого следует выполнить команду: Разработчик → Код → Макросы → в открывшемся диалоговом окне Макрос выберите в списке имя нужного макроса нажмите кнопку Выполнить.

Пример 1.

Запись макроса и размещение его на панели быстрого доступа.

Пусть необходимо создать макрос, который активизирует рабочий лист: так, если активным является Лист1, то мы запишем макрос который активизирует рабочий лист Лист2.

Для этого:

1) Запустите MS Excel 2007 и убедитесь, что указатель ячейки находится на рабочем листе Лист1, ячейка А1.

2) Для активизации макрорекордера выполните команду: Разработчик → Код → щелкните на кнопке Запись макроса.

3) В открывшемся окне Запись макроса установите необходимые параметры записываемой процедуры (см. рис. 1). Например, присвойте макросу имя: АктивизацияЛиста (имя пишется без пробелов), в поле Описание введите соответствующие пояснения (для чего создается ваш макрос), поле Сохранить оставьте без изменения и нажмите ОК.

Рис. 1. Вид окна Запись макроса с введенными параметрами процедуры.

Примечание: поля Имя макроса и Описание используются для задания имени макроса и его описания. По умолчанию макросам присваиваются имена Макрос1, Макрос 2 и т.д. Если вы планируете использовать макрос многократно, то через некоторое время вам будет трудно вспомнить, для чего он создавался, поэтому для облегчения узнаваемости лучше использовать оригинальное имя, поясняюшее для чего он предназначен. Для этой же цели заполняется и поле Описание.

Поле Сочетание клавиш позволяет назначить макросу комбинацию клавиш, т.е. указать символ, который в сочетании с клавишей Сtrl позволит его выполнить. Пожалуй, это имеет смысл делать только для постоянно используемых макросов − для быстрого доступа к ним. Без помощи комбинации клавиш макрос вызывается с помощью команды: Разработчик → Код → щелкнуть на кнопке Макросы.

Раскрывающийся список Сохранить в предназначен для выбора книги, в которой будет сохранен макрос. Если выбрать Личная книга макросов, то макрос будет сохранен в специальной скрытой книге, в которой хранятся макросы. Эта книга автоматически загружается при каждом запуске приложения Excel и является всегда открытой, хотя и скрыта, а записанные в ней макросы доступны для других рабочих книг. Если в раскрывающемся списке выбрать Эта книга (выбор, который по умолчанию предлагает компьютер), то макрос сохранится на новом листе модуля в активной рабочей книге. А если выбрать Новая книга, то макрос сохранится в новой рабочей книге.

4) В режиме записи макроса перейдите на Лист2. Нажмите кнопку Остановить запись в разделе Код, вкладки Разработчик.

5) Сохраните вашу рабочую книгу в формате, поддерживающем макросы. Для этого щелкните на кнопке Office и далее выполните команду: Сохранить как → в открывшемся окне Сохранение документа в поле Тип файла выберите Книга Excel с поддержкой макросов. Нажмите Сохранить.

6) Перейдите на вкладку Разработчик. Далее выполните команду: Код → Макросы в открывшемся окне Макрос выделите имя созданного макроса и нажмите кнопку Изменить. В результате на экране отобразится окно редактора VBA, с активизированным стандартным модулем, в котором будет код (см. листинг 1) только что записанного макроса, см. рис. 2.

Листинг 1. Макрос, активизирующий рабочий Лист2, стандартный модуль.

Sub АктивизацияЛиста()

'

' АктивизацияЛиста Макрос

' Макрос "Активизация листа" нужен для того, чтобы активизировать другой лист

'

'

Sheets("Лист2").Select

End Sub

Рис. 2. Окно редактора VBA c активизированным стандартным модулем.

7) Теперь не закрывая данной рабочей книги, создайте ещё одну рабочую книгу для этого щелкните на кнопке Office и далее выполните команду: Создать в группе Пустые и последние выберите Новая книга нажмите кнопку Создать.

8) В открывшемся файле перейдите на вкладку Разработчик Код далее щелкните по кнопке Макросы.

9) В открывшемся окне Макрос (рис. 3) укажите имя созданного макроса и убедитесь, что в вашей рабочей книге макрос активизировал Лист2.

Рис. 3. Окно Макрос с указанием имени выбранного макроса.

Примечание: выполнив команду: Разработчик → Код → Безопасность макросов вы откроете диалоговое окно Центр обеспечения безопасностью макросов. В этом диалоговом окне вы всегда можете выбрать требуемый параметр, чтобы предотвратить выполнение вредоносного кода, который может содержаться в файле, полученном из неизвестных источников. Выбирая слева в окне окно Центр обеспечения безопасностью макросов категорию Надежные расположения и нажав кнопку Добавить новое расположение, можно указать путь, откуда ваши файлы, содержащие код VBA будут открываться без блокирования соответствующих действий, см. рис. 4:

Рис. 4. В диалоговом окне Центр обеспечения безопасностью выбрана категория Надежные расположения.

10) Теперь назначим созданный макрос кнопке, которая будет размещена на панели быстрого доступа. Для этого щелкните правой кнопкой мыши на панели быстрого доступа и выберите команду Настройка панели быстрого доступа.

11) В открывшемся окне Параметры Excel (см. рис. 5), в поле Выбрать команды выберите объект Макросы.

Рис. 5. Выбор объекта Макросы в окне Параметры Excel в категории Настройка.

12) Выберите в левом столбце созданный вами макрос АктивизацияЛиста и с помощью кнопки Добавить перенесите его в правый столбец. Обратите внимание, что внизу правого столбца стала доступной команда Изменить: она служит для назначения кнопки соответствующему макросу. Нажмите кнопку Изменить.

1 3) В открывшемся окне Изменение кнопки (рис. 6) укажите мышью символ для кнопки макроса. При необходимости в поле Отображаемое имя можно изменить имя макроса, которое будет всплывающей подсказкой на панели быстрого доступа. Нажмите ОК. В результате диалоговое окно примет вид как на рис. 7 (кнопка макроса отображается в правом столбце). Нажмите ОК.

Рис. 6. Вид диалогового окна Изменение кнопки.

Рис. 7. Кнопка для макроса в окне Параметры Excel в категории Панель быстрого доступа.

14) Убедитесь, что кнопка с записанным макросом появилась на панели быстрого доступа (см. рис. 8) и её нажатие приводит к выполнению записанных вами действий.

Рис. 8. Кнопка созданного макроса на панели быстрого доступа.