Для чего нужен макрорекордер в приложениях ms office

Обновлено: 03.07.2024

Всем нам приходится - кому реже, кому чаще - повторять одни и те же действия и операции в Excel. Любая офисная работа предполагает некую "рутинную составляющую" - одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д. Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции. Например функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д.

Макрос - это запрограммированная последовательность действий (программа, процедура), записанная на языке программирования Visual Basic for Applications (VBA). Мы можем запускать макрос сколько угодно раз, заставляя Excel выполнять последовательность любых нужных нам действий, которые нам не хочется выполнять вручную.

Способ 1. Создание макросов в редакторе Visual Basic

Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно - редактор программ на VBA, встроенный в Microsoft Excel.

macro1.jpg

  • В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис - Макрос - Редактор Visual Basic(Toos - Macro - Visual Basic Editor).
  • В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer) . Выбираем Файл - Параметры - Настройка ленты (File - Options - Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer) . Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic(Visual Basic Editor)

    :

К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:

macro2.jpg

Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:

    Обычные модули - используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert - Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:

macro3.jpg

macro4.jpg

macro5.jpg

Обычный макрос, введенный в стандартный модуль выглядит примерно так:

macro6.jpg

Давайте разберем приведенный выше в качестве примера макрос Zamena:

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

Способ 2. Запись макросов макрорекордером

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

  • Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу - запись останавливается.
  • Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное).
  • Если во время записи макроса макрорекордером вы ошиблись - ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) - во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.

Чтобы включить запись необходимо:

  • в Excel 2003 и старше - выбрать в меню Сервис - Макрос - Начать запись(Tools - Macro - Record New Macro)
  • в Excel 2007 и новее - нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)

Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:

macro7.jpg

  • Имя макроса - подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
  • Сочетание клавиш - будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис - Макрос - Макросы - Выполнить(Tools - Macro - Macros - Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
  • Сохранить в. - здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
    • Эта книга - макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
    • Новая книга - макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т.е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
    • Личная книга макросов - это специальная книга Excel с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.

    После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording) .

    Запуск и редактирование макросов

    Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или - в старых версиях Excel - через меню Сервис - Макрос - Макросы (Tools - Macro - Macros) :

    macro8.jpg

    • Любой выделенный в списке макрос можно запустить кнопкой Выполнить(Run) .
    • Кнопка Параметры(Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
    • Кнопка Изменить(Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.

    Создание кнопки для запуска макросов

    Чтобы не запоминать сочетание клавиш для запуска макроса, лучше создать кнопку и назначить ей нужный макрос. Кнопка может быть нескольких типов:

    Кнопка на панели инструментов в Excel 2003 и старше

    Откройте меню Сервис - Настройка (Tools - Customize) и перейдите на вкладку Команды (Commands) . В категории Макросы легко найти веселый желтый "колобок" - Настраиваемую кнопку (Custom button) :

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

    Кнопка на панели быстрого доступа в Excel 2007 и новее

    Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar) :

    macro11.jpg

    Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:

    macro12.jpg

    Кнопка на листе

    Этот способ подходит для любой версии Excel. Мы добавим кнопку запуска макроса прямо на рабочий лист, как графический объект. Для этого:

    • В Excel 2003 и старше - откройте панель инструментов Формы через меню Вид - Панели инструментов - Формы (View - Toolbars - Forms)
    • В Excel 2007 и новее - откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer)

    Выберите объект Кнопка (Button) :

    macro13.jpg

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

    Создание пользовательских функций на VBA

    Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция - только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).

    Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert - Module и введем туда текст нашей функции:

    macro14.jpg

    Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка - Функция) в категории Определенные пользователем (User Defined) :

    macro15.jpg

    После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:

    Для автоматического создания макросов служит макрорекордер . Мы рассмотрим работу с ним на примере Microsoft Office Word 2007. Если отвлечься от VBA и говорить об обычной работе в Word , то окажется, что с помощью макрорекордера можно записывать действия, которые мы выполняем в программе. Например, записывается ввод и удаление текста, нажатие на кнопки вкладок, форматирование текста и так далее.

    Однажды мне нужно было отформатировать довольно большой документ в кратчайшие сроки. А именно — выделить особыми стилями некоторые слова. Всего этих стилей было четыре, а это значит, что наиболее доступный метод офисной автоматизации — средство Формат по образцу — помогло бы не слишком сильно. Ручное форматирование (или создание новых стилей) так же казалось слишком медленным. Но на помощь пришли макросы , созданные с помощью макрорекордера. Назначив форматирование каждым из стилей собственному сочетанию клавиш, я значительно ускорил работу. А именно — правой рукой управлял мышью, перемещаясь по тексту и выделяя нужные слова, а левой нажимал необходимые сочетания клавиш.

    Алгоритм работы с макрорекордером выглядит так:

    1. Включить запись макроса , настроив некоторые параметры;
    2. Выполнить действия, которые вы хотели бы автоматизировать;
    3. Остановить запись;
    4. Использовать записанный макрос по необходимости.

    Макрорекордер , помимо написания макросов , поможет вам лучше изучить возможности VBA и тонкости объектных моделей приложений Office (мы поговорим о них ниже). Например, вы не знаете точно, как именно реализовать то или иное действие программно, но знаете, как это делается вручную. Просто запишите макрос с нужными вам действиями, а потом откройте его в редакторе VBA . Вы сможете проанализировать полученный код, а возможно и включить его фрагменты в свое приложение .

    Лучший способ освоить макрорекордер — это попытаться самостоятельно записать макрос . Этим мы сейчас и займемся.

    1.2.Форматирование текста в MS Word

    Примечание. Если при попытке выполнить примеры этого курса вы, столкнетесь с ошибкой " Can't find project or library ", перейдите в редактор Visual Basic, выполните команду Tools > References, в появившемся окне найдите те элементы списка, которые помечены как MISSING, снимите флаги напротив их имен, и если в списке имеются свежие версии отсутствующих библиотек, отметьте их, и нажмите ОК. После этого пример будет запускаться.

    Can

    Tools-References

    Запишем в Microsoft Word макрос , который по нажатию комбинации клавиш форматирует выделенный текст определенным образом.

    1.2.1. Задание

    Создать макрос в Microsoft Word, который автоматически форматирует выделенный текст следующим образом:

    • Шрифт: Times New Roman, 14-й, курсивный
    • Цвет шрифта: красный

    Назначить вызов макроса по нажатию комбинации клавиш Alt + Ctrl + Shift + A и по нажатию настраиваемой кнопки .

    1.2.2. Решение

    Выделим первый участок текста, который нужно отформатировать.

    Прежде чем записывать макрос , важно очень точно спланировать свои действия. Если вы что-то сделаете не так во время записи, неправильные действия будут записаны в макрос . Например, выделять текст нужно до начала записи. Иначе в макрос попадет команда выделения текста и каждый раз после запуска программа будет выделять текст, а нам это не нужно.

    Выберем вкладку ленты Вид и нажмем на ней направленную вниз треугольную стрелку под надписью Макросы (рис. 1.1.).

    В открывшемся меню нам нужна команда Запись макроса.

    Появится окно для настройки свойств макроса (рис. 1.2.). Рассмотрим поля этого диалога.

    Имя макроса: в это поле нужно ввести имя макроса . Имена макросов должны начинаться с буквы, не должны содержать пробелов. Желательно давать макросам какие-нибудь осмысленные имена. Например, Формат_Times_Красный.

    Назначить макрос кнопке: диалоговое окно назначения макроса настраиваемой кнопке .

    Назначить макрос клавишам: диалоговое окно назначения макроса сочетанию клавиш на клавиатуре.

    В поле Макрос доступен для надо выбрать место сохранения макроса , которое определяет его доступность для различных документов. По умолчанию здесь выбран параметр Всех документов ( Normal.dotm ).

    Normal.dotm —это общий шаблон, доступный для всех документов Microsoft Word. Если макрос будет сохранен в Normal.dotm — вы сможете запустить его из любого Word-документа. Не следует сохранять все записываемые вами макросы в Normal.dotm . Делайте это лишь тогда, когда вы точно уверены в том, что макрос понадобится вам в различных документах. Мы выберем в этом поле значение Документ 1 (документ). Именно так здесь называются еще не сохраненные документы. Выбрав этот пункт, мы сохраняем макрос в текущем документе, то есть сможем вызывать макрос лишь из этого документа.

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

    Кнопка OK начинает запись макроса . Но до начала записи воспользуемся кнопкой Назначить макрос клавишам. Появится окно настройки комбинации клавиш для запуска макроса (рис. 1.3.).

    Чтобы назначить макросу сочетание клавиш, нужно установить курсор в поле Новое сочетание клавиш и нажать нужное сочетание на клавиатуре. В случае, если это сочетание не назначено ранее для быстрого вызова каких-либо команд, под полем Текущие сочетания вы увидите надпись Текущее назначение: [нет]. Если вы увидите здесь что-нибудь другое — лучше всего поискать свободное сочетание. Иначе вы можете столкнуться с неожиданным поведением знакомых вам горячих клавиш.


    Рис. 1.3. Настройка сочетания клавиш для запуска макроса

    В поле Сохранить изменения в выберем Документ 1 — то есть наш документ, который мы в данный момент редактируем. По умолчанию здесь установлен уже знакомый вам Normal.dotm . Сохранять привязку сочетаний клавиш к макросам в Normal.dotm следует лишь в том случае, если вы, во-первых, на предыдущем шаге сохранили макрос в Normal.dotm , а во-вторых, хотите, чтобы данное сочетание работало во всех остальных документах MS Word, а не только в текущем документе.

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

    В процессе записи макроса указатель мыши дополняется значком с изображением кассеты. Щелчок правой кнопкой не действует. Поэтому нам нужно отформатировать текст, пользуясь вкладками ленты Microsoft Word. Так и поступим. Настроим необходимые параметры форматирования, снова перейдем на вкладку Вид и нажмем там на кнопку Остановить запись (рис. 1.4.)

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

    После записи макроса самое время его протестировать. Для этого выделим текст и нажмем Ctrl + Alt + Shift + A. Если все сделано правильно — текст будет отформатирован.

    Но мы выполнили не все части задания. Как вы помните, нужно было настроить запуск макроса с помощью кнопки.

    Для этого нажмите кнопку настройки панели быстрого доступа (она находится справа от панели) и в появившемся меню выберите пункт Другие команды. Появится окно для настройки команд Microsoft Word (рис. 1.5.).

    В списке Выбрать команды из выберите Макросы.

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


    увеличить изображение
    Рис. 1.5. Назначение макроса кнопке панели быстрого доступа

    На этом можно завершить настройку. Однако, кнопка макроса , которая появится на панели быстрого доступа, будет выглядеть не слишком привлекательно. Поэтому выделим строку макроса в окне Настройка быстрого доступа и нажмем на кнопку Изменить. Появится окно настройки свойств кнопки макроса .

    Здесь вам нужно выбрать понравившийся значок для кнопки макроса и ввести в поле Отображаемое имя текст, который будет появляться при наведении на кнопку вызова макроса указателя мыши. Вот, что получилось в итоге (рис. 1.6.).


    Рис. 1.6. Кнопка для быстрого вызова макроса на панели быстрого запуска Сохраняя файл Microsoft Word, содержащий макросы , обязательно убедитесь в том, что вы сохраняете его в формате .docm (Документ Word с поддержкой макросов ). Дело в том, что используемый по умолчанию формат .docx (Документ Word) не поддерживает макросы . Если вы сохраните документ с макросами в таком формате, результаты работы будут утеряны.

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

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

    В большинство программ Microsoft Office, таких, как Excel, Word, PowerPoint и т.п., встроено замечательное средство, которое позволит вам создавать программы, вообще ничего не зная о программировании. Это средство называется макрорекордером.

    Макрорекордер, как понятно из его названия — средство для записи макросов. Макрос — всего лишь еще одно название для VBA-программы, а макрорекордер — средство для его автоматического создания.

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

    Конечно, макрорекордер позволяет написать только самые простые VBA-программы. Однако и он может принести много пользы. Например, можно "положить" на горячие клавиши те слова, словосочетания, варианты оформления и т.п., которые вам часто приходится вводить (должность, название фирмы, продукт, ФИО директора и ответственного исполнителя и т.п.) — этим вы сэкономите много времени.

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

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

    необходимо очень тщательно спланировать макрос, хорошо продумав, что вы будете делать и в какой последовательности. Если есть возможность, продумайте подготовительные действия. Например, если нужно вставлять текущую дату в начало документа, может быть, есть смысл первой командой макроса сделать переход на начало документа (< Ctrl>+< Home>);

    посмотрите, нет ли готовой команды, которую можно сразу назначить клавише или кнопке в панели инструментов без изготовления макроса. Посмотреть можно при помощи меню Сервис -> Настройка. На вкладке Команды можно перетащить нужную команду на требуемую панель управления, а нажав на этой же вкладке кнопку Клавиатура — назначить для команды нужную комбинацию клавиш;

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

    Как создать макрос в макрорекордере (для тех программ Microsoft Office, для которых такое средство предусмотрено, например, Word, Excel, PowerPoint, Project):

    Внимание! Приложения Microsoft Office 2003 по умолчанию настроены так, что не позволяют запускать макросы. Поэтому перед тем, как приступать к созданию макросов, в меню Сервис -> Макрос -> Безопасность переставьте переключатель в положение "Средняя" или "Низкая", а потом закройте и снова откройте данное приложение. Это потребуется сделать только один раз.

    В меню Сервис->Макрос выберите команду Начать запись. В открывшемся окне вам потребуется определить:

    Имя макроса. Правила такие: не должно начинаться с цифры, не должно быть пробелов и символов пунктуации. Максимальная длина в Excel — 64 символа, в Word — 80 символов. Можно писать по-русски.

    Будет ли макрос назначен кнопке на панели управления или комбинации клавиш. Назначить макрос кнопке/комбинации клавиш и использовать другие средства для его вызова можно и потом — об этом будет рассказано в следующем разделе.

    Где сохранить макрос. В Word в вашем распоряжении текущий файл и шаблон для всех вновь создаваемых документов — normal.dot. В Excel в вашем распоряжении текущая книга, возможность создать макрос одновременно с созданием новой книги и личная книга макросов personal. xls (макросы из этой скрытой книги будут доступны в любых книгах). Подробнее про то, где может храниться программный код, мы поговорим в разделе про структуру проектов VBA.

    Описание. Лучше заполнить — это подарок не только для других, но и для себя (через несколько месяцев).

    После нажатия на кнопку OK или назначения кнопки/клавиатурной комбинации начнется запись макроса. Указатель мыши при этом примет вид магнитофонной кассеты и появится маленькая панель Остановить запись. На ней всего две кнопки — Остановить запись и Пауза. Если вы случайно закрыли эту панель, остановить запись можно через меню Сервис->Макрос->Остановить запись.

    Самый простой способ запустить макрос, которому не назначена кнопка или клавиатурная комбинация — в меню Сервис выбрать Макрос -> Макросы (или нажать кнопку <Alt>+<F8>), в списке выбрать нужный макрос и нажать на кнопку Выполнить. Из этого же окна можно просматривать/редактировать макросы, удалять/перемещать их и т.п.

    Если макросов создано много, то получить список всех назначений клавиш (включая назначения для встроенных макросов Word) можно при помощи меню Сервис -> Макрос -> Макросы, затем в списке Макросы из выбрать команды Word и выбрать в списке Имя команду List Commands. В ответ на приглашение нужно выбрать Текущие настройки меню и клавиш (иначе будет выведен полный список команд Word на 26 страниц). В ваш документ будет вставлена таблица с текущими назначениями клавиш, которую можно распечатать.

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

    если в вашем макросе повторяются какие-либо действия, возможно, есть смысл организовать цикл;

    может быть, есть смысл в ходе выполнения уточнить что-либо у пользователя (при помощи Input Box или элементов управления);

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

    Как все это сделать — будет рассказано в следующих главах.

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

    Конкретный пример: вам нужно автоматизировать создание диаграмм в Excel. Поскольку в русской версии Excel для создания диаграммы вручную вы используете команду Вставка -> Диаграмма, то скорее всего, в справке по VBA вы начнете в первую очередь искать объект Diagram. И вы его найдете — и скорее всего, потратите определенное время на его изучение, прежде чем поймете, что это не та диаграмма! Объект Diagram представляет то, что в русской версии Excel называется "Схематическая диаграмма" (доступны из того же меню Вставка), а обычная диаграмма — это объект Chart. А вот если бы мы пустили вперед разведчика (то есть создали бы диаграмму с записью в макрорекордере и посмотрели бы созданный код), он бы сразу указал нам нужное направление движения.

    1.1 По умолчанию приложения MS Office настроены так, что не позволяют запускать макросы. Это сделано из-за соображений безопасности, так как в свое время были очень распространены так называемые макро-вирусы. Поэтому, перед тем как приступить к работе с макросами, необходимо изменить уровень безопасности на среднюю в меню Сервис – Макрос – Безопасность (для MS Office версии до 2003) и Файл – Параметры – Центр управления безопасностью (для более современных версий). При работе в версиях офисного пакета, начиная с Офиса-2007, нужно также открыть доступ к средствам разработчика, установив отметку Файл – Параметры –показывать вкладку «Разработчик» на ленте. Это требуется сделать только один раз в начале работы. Обратите внимание, что команды управления макросами дублируются на вкладках Разработчик и Вид.

    1.2 Макрорекордер – средство для записи макросов – последовательностей команд приложений MS Office . Такие последовательности являются законченными программами на VBA . Запись макросов применяется не только для автоматизации определенных операций, но и для изучения объектов приложений MSO, которые могут использоваться для выполнения тех или иных действий.

    1.3 Принцип работы макрорекордера похож на принцип работы магнитофона: после нажатия кнопки «Начать запись» записываются все выполняемые действия, пока не будут нажата кнопка «Остановить запись». Однажды сделанная запись может проигрываться (повторяться) сколько угодно раз в любой нужный момент.

    1.4 Запись макроса вызывается командой Сервис – Макрос – Начать запись (для MS Office версии до 2003) и командой Вид –Макросы – Начать запись (для современных версий).

    1.5 После вызова команды необходимо:

    · задать имя макроса . Оно должно начинаться с буквы, не содержать пробелов и знаков препинания, может включать символы кириллицы;

    · назначить макрос кнопке на панели управления или комбинации клавиш.

    · указать, где будет храниться макрос. В Word макрос может храниться либо в текущем документе, либо в шаблоне для всех вновь создаваемых документов Normal.dot

    · дать описание макросу

    Внимание! При выполнении практических заданий рекомендуется сохранять свои макросы только в текущем документе! Макросы, сохраненные в общем шаблоне Normal.dot оказываются доступными всем документам Word. Макросы, содержащие ошибки и сохраненные в Normal.dot, могут привести к нестабильной работе текстового процессора.

    На рисунке 1 показан диалог, в котором задается имя, место хранение и описание макроса.

    Диалог создания макроса

    Рисунок 1 Диалог Запись макроса

    Комбинации клавиш, которые задаются для вызова макроса, также следует сохранять только в текущем документе.

    Диалог назначения клавиш макросу

    Рисунок 2 Диалог назначения клавиатурных комбинаций макросу

    1.6 Запись макроса начинается после нажатия клавиши Ok в окне «Начать запись» и продолжается, пока не будет выполнена команда Сервис - Макрос - Остановить запись(2003\ХР), Вид – Макросы –Остановить запись (7 \ 10) или нажата кнопка «Остановить запись» (рис.3).

    Рисунок 3 Панель"Запись макроса" в момент записи. На панели расположены кнопки Остановить запись и Пауза

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

    2 Задание 1.

    2.1 В конспект занести последовательность операций, которые будут выполняться макросом (из п.2.4).

    2.2 Открыть новый документ Word , проверить установленный уровень безопасности и, при необходимости, установить средний уровень безопасности.

    2.3 Ввести номер и название темы, фамилию слушателя. Ввести текст «Создание и использование макросов». Включить запись макроса, присвоить ему имя Тест1, дать описание – «тест для демонстрации работы макрорекордера, ФИО слушателя», назначить для хранения новый документ, назначить макросу комбинацию клавиш Ctrl - Alt -1.

    2.4 Записать макрос, содержащий последовательность команд:
    - переход в конец текста клавишами “ Ctrl – End ”;
    - троекратное нажатие клавиши “ Enter ”;
    - ввод текста «Привет, Basic !»;
    - выделении введенного текста клавишами“ Shift – Home ”;
    - задание размера текста 20 выделенному фрагменту (выбором из списка «Размер»;
    - средствами диалога Главная – Шрифт – Цвет (Формат – Шрифт – Цвет в 2003 \ ХР) применить цвет красный к выделенному фрагменту;
    - переход в конец текста клавишами “ Ctrl – End ”.

    2.5 Закончить запись макроса.

    2.6 Выполнить записанный макрос с помощью назначенного сочетания клавиш.

    2.7 Выполнить команды: Вид – Макросы (Сервис – Макрос – Макросы в 2003\ХР) выбрать из списка вновь созданный макрос, кнопкой Изменить открыть редактор Visual Basic и проанализировать текст макроса.

    3 Анализ текста макроса и его изменение

    3.1 Текст полученного макроса может иметь примерно следующий вид (курсивом выделены пояснения к тексту макроса):

    3.2 Задание 2. Перейдите в документ Word , выполните созданный макрос с помощью горячих клавиш и с помощью команд меню: Вид – Макросы (Сервис – Макрос – Макросы) – – Выполнить.

    3.3 Задание 3. Перейдите в редактор VBA, создайте в окне Code копию текста макроса (действуют стандартные приемы копирования \ вставки). В новом макросе:
    - измените имя макроса на Тест2 ;
    - измените выводимый текст на текст «Привет,Фамилия_Слушателя»;
    - выводимый текст должен выделяться зеленым цветом;
    - новый макрос должен добавлять текст в начало документа.

    3.4 Выполните новый макрос, используя команду меню VBA Run Run Sub \ UserForm или кнопку ► Run Sub \ UserForm на панели инструментов.

    3.5 Сохраните полученный документ.

    4 Структура проекта и элементы интегрированной среды разработки

    4.1 Программа на VBA существует и функционирует только вместе с документом. Документ с программой образуют проект (Project). Все открытые в данный момент проекты можно увидеть в окне Project Explorer редактора (рис.4).

    Окна IDE

    Рисунок 4. Интегрированная среда разработки. 1 - обозреватель проектов (Project Explorer); 2 - окно свойств (Property Windows); 3 - окна кода (Code)

    4.2 В каждом проекте один модуль создается автоматически. В Word это модуль называется ThisDocument. Другие модули могут создаваться программистом.

    4.3 Модуль, в свою очередь, инкапсулирует процедуры, созданные с помощью макрорекордера или написанные программистом.

    4.4 Управление проектами, подготовка кода процедур, анализ хода выполнения процедур производятся в интегрированной среде разработки (IDE). IDE включает в себя редактор VBA и восемь окон, позволяющих управлять проектами и объектами, получать справочную и отладочную информацию. Для перехода из документа MSO в IDE можно использовать:
    - команду Разработчик – Visual Basic (Сервис – Макрос – Редактор VBA) ;
    - «горячие» клавиши <Alt-F11>;
    - кнопку «редактор VBA» (если она выведена на панель инструментов);
    - активизацию окна Microsoft Visual Basic (если редактор VBA уже был открыт).
    Возвратиться из IDE в приложение MSO можно:
    - активизировав окно приложения;
    - использовав «горячие» клавиши <Alt-F11>;
    - выбрав в меню редактора View пункт Microsoft Word / Excel / и т.д, в зависимости от приложения или кнопку на панели инструментов View Microsoft Word / Excel

    4.5 Активизировать рабочие окна IDE можно различными способами, проще всего использовать пункты меню View .

    4.6 Задание 4 . Изучите следующие окна IDE :
    - окно обозревателя проектов ( Project Explorer );
    - окно свойств ( Property Windows);
    - окна кода ( Code )

    4.6.1 Активируйте указанные окна, используя команды меню View .
    Замечание. Какая область кода будет активна, зависит от того, какой модуль и в каком проекте выделен в окне Project Explorer.

    4.6.2 Разместите активные окна в окне редактора, так, чтобы были видны окна обозревателя и свойств, и был бы максимально виден текст второго макроса.
    Замечание. Если окно не удается переместить, вызовите контекстное меню окна (правой кнопкой мыши) и снимите отметку Dockable («закреплять»).

    4.6.3 Сделайте копию экрана, включите рисунок в свой документ и сделайте экспликацию, включив в нее описания элементов интерфейса редактора VBA и видимых окон IDE.

    4.6.4 Найдите в справочной системе VBA описания окна обозревателя проектов и окна кода. Включите в свой документ вольный перевод этих описаний.

    Читайте также: