Обыкновенный макрос: что это такое и как это работает

Корреспондент Автор: Стефани Кригер, эксперт по работе с документами

Относится к:
выпускам Microsoft Office System 2003

Приходилось ли вам при работе с программой Microsoft Office выполнять повторяющиеся задачи, которые можно было бы выполнять автоматически? Возможно, вам приходилось переформатировать многочисленные таблицы в документе Word или преобразовывать данные в электронных таблицах Excel. А может, было необходимо сделать однотипные изменения на нескольких похожих страницах Visio или слайдах PowerPoint? Если описанные ситуации кажутся вам знакомыми, значит, вам пора узнать больше о макросах.

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

На этой странице:

Что такое макрос?

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

Являются ли макросы программой?

Макрос является программой, однако, чтобы использовать в работе макросы, вам не нужно быть разработчиком или программистом. Для создания большинства макросов, используемых в приложениях Office, применяется язык Microsoft Visual Basic for Applications, обозначаемый как язык VBA. Эта статья посвящена именно VBA-макросам.

Когда и зачем использовать макросы?

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

В этой статье мы рассмотрим пример форматирования многочисленных таблиц в документе Word. Предположим, что в документе имеются 50 таблиц, форматирование которых необходимо изменить. Если вы опытный пользователь и форматирование одной таблицы займет у вас пять минут, выполнение одной задачи для всех таблиц займет не один час. Если для форматирования таблиц записать макрос и задать параметр повторения действий до конца документа, задача будет выполнена в считанные минуты.

Создание макросов

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

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

Записать макрос так же просто, как и включить или выключить магнитофон. При использовании средства для записи макросов запись макроса осуществляется автоматически на основании действий, выполняемых пользователем. Макрос можно записать в таких приложениях семейства Office, как Word, Excel, PowerPoint, Visio и Project.

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

Чтобы записать такой макрос, поместите курсор в начало таблицы, форматирование которой необходимо изменить, и выполните следующие действия:

  • В меню Сервис выберите команду Макрос, а затем — команду Начать запись.
  • В диалоговом окне Запись макроса (см. рисунок) можно задать имя макроса, назначить для быстрого доступа к нему панель задач или сочетание клавиш, указать место, где макрос будет храниться, и добавить описание макроса для справки. При необходимости все эти шаги можно пропустить и нажать «ОК», чтобы начать запись.

Диалоговое окно «Запись макроса»

  1. Автоматически присваиваемое макросу имя можно изменить. Имена макросов могут состоять из букв и цифр и не должны содержать пробелы.
  2. По умолчанию новый макрос сохраняется в общем шаблоне Normal.dot. Макрос также можно сохранить в активном документе или шаблоне, равно как и в любом пользовательском шаблоне.
  3. Для быстрого доступа к макросу можно назначить панель задач или сочетание клавиш. Этот этап можно пропустить и выполнить назначения в любой момент времени.
  4. Описание макроса включает дату создания и имя пользователя, записавшего макрос. Описание можно редактировать по усмотрению пользователя.

Если нажать кнопку «ОК», появится небольшая панель с двумя кнопками — Остановить записьЗначок кнопки и ПаузаЗначок кнопки.

  • Выполните действия по форматированию таблицы. Например, можно применить стиль к таблице, задать ширину таблицы не более 50% ширины страницы, выделить таблицу, а затем удалить параметры высоты строк для всех строк. Закончив форматирование, которое будет применено ко всем таблицам, нажмите кнопку Остановить запись.
  • Теперь можно щелкнуть любую таблицу в документе и запустить макрос, чтобы автоматически выполнить все действия, которые были произведены с первой таблицей.

Примечание.     Если для доступа к макросу не назначена панель или сочетание клавиш, макрос можно выбрать с помощью диалогового окна «Макрос». Для этого в меню Сервис выберите команду Макрос, а затем — Макросы. Выберите макрос из списка и нажмите Выполнить.

Создание макроса программными средствами

В приложениях Office, в которых можно записать макрос, например в Access, Outlook, FrontPage или Publisher, можно также написать пользовательский VBA-макрос. Чтобы написать макрос, вам потребуется минимум знаний о языке VBA, вы будете удивлены тем, насколько легко его освоить на фоне представлений о самом приложении, которым вы пользуетесь. Язык VBA предназначен для автоматизации функций, используемых каждый день. Например, в приложении Word к терминам VBA относятся документы, таблицы, абзацы и разделы.

Возможность создания макроса программными средствами или редактирования записанного макроса позволяет усовершенствовать макрос. Например, в макрос из описанного выше примера можно добавить так называемый цикл — простейший код VBA, который позволяет макросу последовательно применить форматирование ко всем таблицам в документе, тогда не потребуется запускать каждый раз макрос отдельно для каждой таблицы.

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

Совет.     Лучше всего начать изучение VBA с записи макроса, затем можно просмотреть его в окне редактора Visual Basic. Для этого в меню Сервис выберите команду Макрос, а затем — Макросы. Выберите записанный макрос из списка и нажмите Изменить.

Макросы и безопасность

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

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

Чтобы установить уровень безопасности в приложении семейства Office, в котором можно использовать VBA-макрос, в меню Сервис выберите команду Макрос, а затем — Безопасность. Выберите необходимый уровень безопасности и нажмите ОК. Обратите внимание, что не рекомендуется использовать низкий уровень защиты.

Использование макросов в приложении...

Word

В приложении Word можно записывать и создавать макросы программными средствами.

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

Excel

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

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

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

PowerPoint, Visio и Project

Так же как и в приложениях Word и Excel макросы можно записывать и создавать в приложениях PowerPoint, Visio и Project.

Access

Макросы очень важны для работы с Access, потому что они значительно расширяют функциональные возможности баз данных. Несмотря на то, что записать макрос в Access нельзя, можно создать макрос с помощью программных средств Access VBA или с помощью инструмента Macro Builder. Access обладает несколькими возможностями, и язык VBA — всего лишь одно из ряда средств, с помощью которых можно задать требуемую автоматизацию.

FrontPage и Publisher

По аналогии с приложениями Word, Excel, PowerPoint и Visio в приложениях FrontPage и Publisher можно создавать макросы для экономии времени за счет автоматизации повторяющихся задач, а также, например в приложении FrontPage, для создания и использования надстроек, расширяющих функциональные возможности приложения.


Об авторе

Стефани Кригер — эксперт по работе с документами, специализирующийся в области создания решений в системе Microsoft Office, один из авторов пособия Microsoft Office Document Designer. Стефани Кригер пишет для нескольких веб-узлов сети Microsoft Web, в том числе для Microsoft At Work и Office Online, а также часто проводит Интернет-трансляции по Office System.