Тема 18. Автоматизация задач. Работа с макросами.
Работа с макросами
Макросы
Если требуется периодическое выполнение задачи в Microsoft Excel, можно автоматизировать задачу с помощью макроса. Макрос — это последовательность команд и функций, хранящаяся в модуле Visual Basic. Ее можно выполнять всякий раз, когда необходимо выполнить данную задачу.
Например, если в ячейки часто вводятся длинные текстовые строки, можно создать макрос для форматирования этих ячеек для охватывания ими текста.
Запись макросов. При записи макроса Microsoft Excel сохраняет информацию о каждом шаге выполнения последовательности команд. Последующий запуск макроса вызывает повторение («воспроизведение») команд. Если при записи макроса была допущена ошибка, сделанные исправления также будут записаны. Visual Basic хранит каждый записанный макрос в отдельном модуле, присоединенном к книге.
Упрощение запуска макроса. Макрос можно запустить, выбрав его из списка в диалоговом окне Макрос. Чтобы макрос запускался после каждого нажатия определенной кнопки или сочетания клавиш, можно назначить макросу кнопку на панели инструментов, сочетание клавиш или графический объект на листе.
Управление макросами. После записи макроса код программы можно посмотреть в редакторе Visual Basic для исправления ошибок и внесения требуемых изменений в макрос. Например, если макрос, переносящий текст по словам, должен также выделять текст полужирным шрифтом, можно записать другой макрос, выделяющий шрифт полужирным шрифтом, и скопировать инструкции из этого нового макроса в старый макрос, переносящий текст по словам.
Редактор Visual Basic разработан для упрощения написания и редактирования программ начинающими пользователями и предоставляет обширную оперативную справку. Для внесения простейших изменений в макросы нет необходимости изучать программирование на языке Visual Basic. Редактор Visual Basic позволяет редактировать макросы, копировать макросы из одного модуля в другой, копировать макросы из других книг, переименовывать модули, хранящие макросы и переименовывать макросы.
Безопасность макросов . Microsoft Excel обеспечивает защиту от вирусов, которые могут передаваться макросами. Если макросы используются совместно с другими пользователями, макросы могут быть снабжены цифровой подписью, так что пользователи могут проверить надежность источника макросов. Всякий раз при открытии книги, содержащей макросы, можно проверить источник макросов, прежде чем разрешить их.
Создание макроса
Запись макроса
1. Установите Средний или Низкий уровень безопасности.
Инструкции
1. В меню Сервис выберите команду Параметры.
2. Откройте вкладку Безопасность.
3. В группе Безопасность макросов нажмите кнопку Безопасность макросов.
4. Откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.
2. Выберите в меню Сервис команду Макрос и подкоманду Начать запись.
3. В поле Имя макроса введите имя макроса.
Примечания
o Первым знаком имени макроса должна быть буква. Остальные знаки могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не допускаются пробелы; в качестве разделителей слов следует использовать знаки подчеркивания.
o Не используйте имя макроса, являющееся ссылкой на ячейку, либо будет выдано соответствующее сообщение об ошибке.
Если этот макрос потребуется запускать нажатием сочетания клавиш на клавиатуре, введите букву в поле Сочетание клавиш. Допускается использование сочетаний CTRL+ буква (для строчных букв) или CTRL+SHIFT+ буква (для прописных букв), где буква — любая буквенная клавиша на клавиатуре. Нельзя использовать сочетания клавиш с цифрами и специальными знаками, такими как @ или #.
Примечание. Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Microsoft Excel на то время, пока открыта книга, содержащая данный макрос.
В поле Сохранить в выберите книгу, в которой требуется сохранить макрос.
Если этот макрос требуется всегда при работе в Microsoft Excel, выберите вариант Личная книга макросов.
Если необходимо добавить описание макроса, введите его в поле Описание.
Нажмите кнопку OK.
Если макрос требуется выполнять относительно позиции активной ячейки, запишите его, используя относительные ссылки на ячейки. На панели инструментов Остановить запись нажмите кнопку Относительная ссылка , чтобы она осталась нажатой. Запись макроса будет продолжена с использованием относительных ссылок, пока не будет закрыт Microsoft Excel или не будет еще раз нажата кнопка Относительная ссылка , после чего она останется не нажатой.
Выполните макрокоманды, которые нужно записать.
На панели инструментов Остановить запись нажмите кнопку Остановить запись .
Создание макроса с использованием Microsoft Visual Basic
1. В меню Сервис Microsoft Excel выберите команду Макрос, а затем — Редактор Visual Basic.
2. В меню Insert выберите команду Module.
3. Введите или скопируйте программу в окно программы модуля.
4. Чтобы запустить данный макрос из окна модуля, нажмите кнопку F5.
5. Когда макрос будет создан, выберите команду Close and Return to Microsoft Excel в меню File.
Создание макроса, выполняемого при запуске
Автоматические макросы, такие как Авто_активизировать, выполняются при запуске Microsoft Excel.
Копирование части макроса для создания другого макроса
1. Установите Средний или Низкий уровень безопасности.
Инструкции
1. В меню Сервис выберите команду Параметры.
2. Откройте вкладку Безопасность.
3. В группе Безопасность макросов нажмите кнопку Безопасность макросов.
4. Откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.
2. Откройте книгу, содержащую макрос, который нужно скопировать.
3. В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.
4. В поле Имя макроса введите имя того макроса, который нужно скопировать.
5. Нажмите кнопку Изменить.
6. Выделите строки макроса, которые нужно скопировать.
При копировании всего макроса целиком убедитесь, что строки Sub и End Sub включены в выделенную область копирования.
7. На стандартной панели инструментов нажмите кнопку Копировать.
8. Переключитесь в модуль, в который нужно вставить скопированные строки.
9. Нажмите кнопку Вставить.
Совет
Файл личной книги макросов (Personal.xls) можно просмотреть в любой момент, открыв его в редакторе Visual Basic (Alt+F11). Поскольку Personal.xls является скрытой книгой, которая всегда открыта, необходимо сделать ее доступной, если требуется копировать макрос .
Выполнение макроса
Выполнение макроса
1. Установите Средний или Низкий уровень безопасности.
Инструкции
1. В меню Сервис выберите команду Параметры.
2. Откройте вкладку Безопасность.
3. В группе Безопасность макросов нажмите кнопку Безопасность макросов.
4. Откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.
2. Откройте книгу, содержащую нужный макрос.
3. В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.
4. В поле Имя макроса введите имя того макроса, который требуется выполнить.
5. Выполните одно из следующих действий.
Запустите макрос в книге Microsoft Excel
o Нажмите кнопку Выполнить.
Чтобы прервать выполнение, нажмите кнопку ESC.
Выполните макрос из модуля Microsoft Visual Basic
1. Нажмите кнопку Изменить.
2. Нажмите кнопку Run Sub/UserForm .
Совет
Чтобы выполнить другой макрос, находясь в редакторе Visual Basic, выберите команду Macros в меню Tools В поле Macro name введите имя того макроса, который нужно выполнить, а затем нажмите кнопку Run.
Назначение клавиши для запуска макроса
1. В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.
2. В поле Имя макроса введите имя того макроса, которому нужно присвоить сочетание клавиш.
3. Нажмите кнопку Параметры.
4. Если этот макрос потребуется запускать нажатием сочетания клавиш на клавиатуре, введите букву в поле Сочетание клавиш. Допускается использование сочетаний CTRL+ буква (для строчных букв) или CTRL+SHIFT+ буква (для прописных букв), где буква — любая буквенная клавиша на клавиатуре. Нельзя использовать сочетания клавиш с цифрами и специальными знаками, такими как @ или #.
Примечание. Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Microsoft Excel на то время, пока открыта книга, содержащая данный макрос.
5. Если необходимо добавить описание макроса, введите его в поле Описание.
6. Нажмите кнопку OK.
7. Нажмите кнопку Отмена .
Назначение кнопки или графического объекта для запуска макроса
1. Щелкните кнопку или графический объект, чтобы появились маркеры изменения размера.
2. Выделив этот объект, щелкните правой кнопкой мыши его маркер изменения размера, чтобы вызвать контекстное меню.
3. Выберите в контекстном меню команду Назначить макрос.
4. Выполните одно из следующих действий.
o Чтобы назначить ранее записанному макросу выбранный графический объект, введите название макроса в поле Имя макроса , а затем нажмите кнопку OK.
o Чтобы создать новый макрос и назначить ему выбранный графический объект, нажмите кнопку Запись. После завершения записи макроса нажмите кнопку Остановка записи на панели инструментов Остановить запись.
o Чтобы написать новый макрос в редакторе Visual Basic, нажмите кнопку Создать. Чтобы отредактировать существующий макрос, выберите его имя в списке Имя макроса и нажмите кнопку Правка .
Примечание. При назначении макроса объекту или кнопке, которые уже используются как гиперссылка, информация о гиперссылке удаляется. При нажатии кнопки или выделении объекта будет выполняться макрос.
Назначение области графического объекта для запуска макроса
1. Нарисуйте другой объект, чтобы создать гиперобласть на имеющемся объекте.
2. Выделив только что нарисованный объект, щелкните правой кнопкой мыши его маркер изменения размера, чтобы вызвать контекстное меню.
3. Выберите в контекстном меню команду Назначить макрос.
4. Выполните одно из следующих действий.
o Чтобы назначить ранее записанному макросу выбранный графический объект, введите название макроса в поле Имя макроса , а затем нажмите кнопку OK.
o Чтобы создать новый макрос и назначить ему выбранный графический объект, нажмите кнопку Запись. После завершения записи макроса нажмите кнопку Остановка записи на панели инструментов Остановить запись.
o Чтобы написать новый макрос в редакторе Visual Basic, нажмите кнопку Создать. Чтобы отредактировать существующий макрос, выберите его имя в списке Имя макроса и нажмите кнопку Правка .
5. В меню Формат выберите команду Автофигура , а затем вкладку — Цвет и линии.
6. В группе Заливка выберите параметр Нет заливки в поле Цвет. В группе Линия выберите параметр Нет линий в поле Цвет.
7. Повторите эти шаги для всех областей, которые требуется создать. Нет необходимости создавать отдельный объект для каждой области.
Назначение кнопки панели инструментов для запуска макроса
1. Выберите команду Настройка в меню Сервис.
2. Выполните одно из следующих действий.
o Если панель инструментов, содержащая требуемую кнопку, не отображается на экране, перейдите на вкладку Панели инструментов и установите флажок рядом с названием этой панели.
o Если на панели инструментов отсутствует кнопка, которая должна запускать макрос, откройте вкладку Команды, выберите пункт Макросы в списке Категории. Из списка Команды перетащите мышью настраиваемую кнопку на панель инструментов.
3. Щелкните эту кнопку правой кнопкой мыши и выберите команду Назначить макрос в контекстном меню.
4. Введите название макроса в поле Имя макроса , затем нажмите кнопку OK.
Изменение макроса
Для изменения макроса необходимо знакомство с редактором Visual Basic, который используется для написания и изменения макросов Microsoft Excel.
1. Установите Средний или Низкий уровень безопасности.
Инструкции
1. В меню Сервис выберите команду Параметры.
2. Откройте вкладку Безопасность.
3. В группе Безопасность макросов нажмите кнопку Безопасность макросов.
4. Откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.
2. В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.
3. Введите имя макроса в поле Имя макроса .
4. Нажмите кнопку Изменить.
5. Для получения сведений о работе с редактором Visual Basic в меню Справка выберите пункт справка Microsoft Visual Basic.
Удаление макроса
1. Откройте книгу, содержащую макрос, который требуется удалить.
2. В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.
3. В списке Находится в выберите Эта книга .
4. В списке Имя макроса выберите имя макроса, который нужно удалить.
5. Нажмите кнопку Удалить.
Прерывание выполнения макроса
Выполните одно из следующих действий.
-
Чтобы остановить текущий выполняющийся макрос, нажмите клавишу ESC, а затем в диалоговом окне Microsoft Visual Basic нажмите кнопку End.
Копирование модуля макроса в другую книгу
1. Установите Средний уровень безопасности.
Инструкции
1. В меню Сервис выберите команду Параметры.
2. Откройте вкладку Безопасность.
3. В группе Безопасность макросов нажмите кнопку Безопасность макросов.
4. Откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.
2. Откройте книгу, содержащую модуль, который требуется скопировать, и книгу, в которую его требуется скопировать.
3. В меню Сервис выберите команду Макрос, а затем — Редактор Visual Basic.
4. В меню Вид выберите команду Окно проекта .
5. Перетащите требуемый модуль в конечную книгу.