Вы работаете в приложениях пакета Microsoft Office и периодически выполняете повторяющиеся задачи? Любая последовательность команд может быть автоматизирована и сведена к выбору пункта меню или нажатию комбинации клавиш. Для этого используются макросы, которые в точности повторяют цепочку ваших действий и тем самым экономят время. Макросы создаются на языке программирования VBA, но совсем не обязательно быть программистом, чтобы написать собственный макрос. Как это делается в приложениях MS Word и Excel, мы и рассмотрим в данной статье.
Содержание
Концепция макросов
![]() |
Рис. 1. Главное окно библиотеки |
Макрос – макропрограмма, последовательный набор команд, которые можно выполнять, нажав одну кнопку или комбинацию клавиш. Их применение существенно экономит время пользователя и избавляет его от необходимости выполнения рутинных операций.
Цель макросов – автоматизировать повторяющиеся действия и расширить функциональные возможности приложения. С помощью макропрограмм создаются крупные модули, включающие в себя дополнительные команды, надстройки и т. д. Пользователи сами имеют возможность создавать макросы, исходя из своих потребностей и характера выполняемых задач. Однажды написанный макрос может быть многократно использован.
Технология макросов поддерживается большинством профессиональных программных продуктов, среди которых: AutoCAD, Adobe Photoshop, 3D Studio Max, Microsoft Office и др.
Поддержка макросов в Microsoft Office
MS Office предлагает два способа создания макропрограмм: непосредственно ввод ее текста (процедуры VBA) в редакторе VBA либо применение встроенного средства записи. Первый вариант рассчитан на опытных пользователей, программистов или интеграторов и позволяет создавать полнофункциональные надстройки, функции и модули. Второй, напротив, необычайно прост и предназначен для новичков, не требует знания принципов программирования и синтаксиса команд VBA.
![]() |
Рис. 2. Создание фотогалереи для Web-сайта |
Автоматическое создание макросов осуществляется, подобно записи на обычный магнитофон, только вместо звука фиксируются нажатия клавиш и действия мыши. Последовательность следующая: включить запись, произвести все операции, которые должен будет выполнять макрос, и остановить запись. Предварительно макропрограмме необходимо дать уникальное имя, описание (необязательно) и указать параметры сохранения – они несколько отличаются в различных приложениях MS Office, но в общем случае их два: сохранение макроса в текущем документе (в других он будет недоступен) либо в собственной библиотеке макросов или шаблоне (станет доступен для всех файлов в этом приложении). Библиотека макросов может быть перенесена на другой компьютер и подключена к соответствующему приложению MS Office, а макропрограмма, сохраненная в файле, копируется и переносится вместе с ним.
Для запуска созданного макроса можно вынести кнопку в панель инструментов, добавить пункт в одно из меню приложения или назначить комбинацию клавиш.
При записи автоматически генерируется текст макропрограммы – процедура VBA. Желающим научиться самостоятельно создавать более мощные и гибкие макросы непосредственно в редакторе будет очень полезно изучить последовательность сгенерированных команд VBA. Для этого нужно нажать сочетание Alt+F8, выбрать из списка соответствующий макрос и нажать кнопку Изменить.
Хотя создать макрос очень легко, лучше предварительно продумать действия, которые он должен выполнять, и определиться с местом его сохранения. В ходе записи важно быть аккуратным при всех операциях и не делать ничего лишнего, чтобы макропрограмма не содержала ненужных команд.
Макросы для Microsoft Word
В MS Word макросы можно использовать для форматирования объектов (таблиц, рисунков и т. д.), указания различных настроек для вывода текущего документа на печать, преобразования документов, созданных в других текстовых редакторах, выполнения различных действий с выделенными данными и прочих операций.
Рассмотрим простой пример. Его оценят многие пользователи, хотя бы раз работавшие с текстами в Word. Часто случайно при наборе или после сканирования и распознавания в тексте появляются лишние пробелы между словами. Даже в малом фрагменте их удаление вручную займет много времени. С помощью диалогового окна поиска и замены это можно выполнить в 6–7 кликов мышью и вводом небольшого текста. Созданный макрос способен заменить все совпадения двух и более стоящих подряд пробелов одним нажатием сочетания клавиш.
Последовательность действий в этом случае следующая:
- В MS Word 2007 перейдите на вкладку Вид, найдите меню Макросы, нажмите в нем раскрывающееся меню Макросы, после чего выберите команду Запись макроса, как показано на рис. 1. Для MS Word 2003: Сервис -> Макрос -> Начать запись…
- В появившемся диалоговом окне Запись макроса введите имя создаваемой макропрограммы. Оно должно быть уникальным, отражать смысл макроса и не содержать пробелов. Назовем наш макрос ЛишниеПробелы. В графе Макрос доступен для выберите место сохранения – для всех документов либо только для текущего. Выбираем первый вариант. Далее в графе Описание вкратце укажите, для чего предназначен макрос.
- После этого в том же диалоговом окне нажмите одну из кнопок Назначить макрос кнопке (панели для версии 2003) или Назначить макрос клавишам. При выборе первого варианта откроется окошко, из которого в MS Word 2003 название данного макроса можно перетащить на панель инструментов или на любое меню (сделать его пунктом этого меню), а работая в Word 2007, нажав кнопку Добавить, можно поместить вызов макропрограммы в панель быстрого доступа. Если же вы предпочитаете запускать макрос сочетанием клавиш, выберите второй вариант, укажите желаемую комбинацию и нажмите OK. Назначим нашему макросу сочетание клавиш Ctrl+Alt+Пробел.
- Запись начата. Теперь вызываем диалог Найти и заменить. Для этого на вкладке Главная в меню Редактирование нажимаем кнопку Заменить. Для 2003 версии: Правка -> Заменить…
- В окне Найти и заменить в поле Найти пишем: «{2;}». Эта запись означает – искать 2 или более пробелов подряд. А в графе Заменить на ставим один пробел. После этого нажимаем на кнопку Больше для указания особых параметров поиска. Укажите Направление – везде и снимите галочки со всех опций, кроме Подстановочные знаки. Если эта опция не была установлена, выберите ее. Параметры замены должны быть указаны, как на рис. 2, затем нажмите кнопку Заменить все.
- После того как будет выдано сообщение о результатах замены, нужно остановить запись макропрограммы. Для этого нажмите на кнопку Остановить запись (значок- квадратик), которая находится в строке состояния, если вы работаете в Word 2007, и Сервис -> Макрос -> Остановить запись для Word 2003.
Макрос записан. Теперь по нажатии комбинации клавиш Сtrl+Alt+Пробел из текущего документа будут автоматически удаляться лишние пробелы.
Макросы для Microsoft Excel
В MS Excel макропрограммы могут быть использованы для создания и печати отчетов, применения специального форматирования к выбранным диапазонам ячеек, импортирования данных, автоматического построения диаграмм, написания собственных программ табличных вычислений и др.
В MS Excel запись, сохранение и быстрый запуск созданных макросов осуществляется подобно тому, как это делается в Word. Рассмотрим несколько примеров, с которыми встречаются пользователи Excel.
Иногда при вводе длинного заголовка таблицы, изменении и пересчете значений и подобных операциях некоторые данные перестают помещаться в ячейках. Вследствие этого в зависимости от версии и текущих настроек Excel текст будет перекрывать соседние ячейки или «прятаться» под ними, если же вводятся числовые данные – вместо цифр вы можете увидеть набор символов #####. Хотя недолго и вручную настроить автоподбор ширины, в случае периодического повторения ситуации лучше создать соответствующий макрос для автоматического выполнения данных действий. Для этого необходимо:
- Создать новую книгу или открыть существующую. Описанным выше способом задайте имя, сохранение в личной книге макросов (не только для текущей книги), комбинацию клавиш (по желанию) и начните запись макроса.
- Нажмите сочетание клавиш Ctrl+Ф для выделения всех ячеек листа. На закладке Главная в меню Ячейки нажмите кнопку Формат и в меню выберите команду Автоподбор ширины столбца (если вы работаете в 2007 версии MS Office) либо выполните команду Формат -> Столбец -> Автоподбор ширины (для MS Excel 2003). Поставьте курсор снова в ячейку А1 для снятия выделения.
- Остановите запись (идентично остановке записи макроса в Word).
Часть пользователей применяют автоформат для быстрого создания таблиц. Наверняка у каждого из них есть свои, наиболее часто используемые стандартные или созданные стили автоформата. Если их несколько, запишите для каждого макрос, назначьте сочетания клавиш или задайте кнопки в панели быстрого запуска. Теперь создание, разметка и применение стилей к таблице будут сведены к выделению нужного диапазона ячеек и вызову соответствующего макроса. Данный пример актуален и для применения автоформата к таблицам в Word.
Многие пользователи выводят на печать не весь документ целиком, а только необходимый фрагмент. Сделайте для этого макропрограмму. Выделите фрагмент, начните запись макроса, проделайте необходимые операции вручную и остановите запись. Впоследствии вам нужно будет только выделить фрагмент и запустить соответствующий макрос (его можно создать как в Word, так и в Excel).
P.S.
Если вы заметили, что в используемом приложении MS Office периодически выполняете одну и ту же последовательность операций, приступайте к написанию макроса. Этим вы сэкономите свое время, не будете отвлекаться на рутинные операции и сосредоточите внимание на более важных задачах.
Ввиду обширности темы макросов в рамках данной статьи невозможно рассмотреть все нюансы их создания и использования. Читателям, заинтересовавшимся применением макропрограмм, рекомендую изучить справку того приложения, работу в котором они хотят автоматизировать. Будут полезны также литература и справочники из Интернета.
Макросы и безопасность
Несколько советов пользователям, применяющим макросы:
- Настройте свою антивирусную программу на фоновую проверку документов MS Office, содержащих макросы (во многих антивирусах установлено по умолчанию).
- Выбирайте опцию Отключить макросы при открытии документов с макросами, загруженных из Интернета или полученных из сомнительных источников.
- Без особой необходимости не изменяйте настройки по умолчанию, касающиеся макросов и безопасности, в приложениях MS Office.
Установка рекомендуемых настроек для Word или Excel 2007: кнопка Office -> Параметры Word Excel -> Центр управления безопасностью -> Параметры центра управления безопасностью -> Параметры макросов, выберите опцию Отключить все макросы с уведомлением. Для пользователей предыдущей версии: Сервис -> Параметры -> Безопасность -> Защита от макросов выберите степень защиты Средняя или Высокая.
Ссылки по теме
office.microsoft.com/ru-ru/help/HA012317941049.aspx – статья, посвященная основам создания макропрограмм для всех приложений Microsoft Office.
office.microsoft.com/ru-ru/word/HA100997691049.aspx – рассмотрение общих вопросов записи макросов в Microsoft Word 2007.
office.microsoft.com/ru-ru/excel/HP100141111049.aspx – запись макросов в Excel 2007, создание макропрограмм непосредственно в редакторе VBA.
office.microsoft.com/ru-ru/excel/HA100310711049.aspx – безопасное использование макросов в разных приложениях MS Office 2007.
www.philol.msu.ru/~yegorov/macro/index.php – полезные макросы для Microsoft Word.
www.firststeps.ru/vba/excel/vbaexcel1.html – документация по созданию мощных процедур для MS Excel на языке VBA с примерами.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: