Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций КИТ 1 курс ГЭФ.doc
Скачиваний:
295
Добавлен:
22.02.2016
Размер:
3.32 Mб
Скачать
  1. Макропрограммирование в Microsoft Office.

Макрос - это именованная последовательность команд (операторов языка VBA), которую пользователь может записать и затем вызывать для исполнения.

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

Макрос состоит в основном из макрокоманд, тесно связанных с командами приложения, в котором он создается, т.е. с командами MS Word, MS Excel или других приложений Microsoft Office. Макрокоманда - последовательность команд, выделяемая в виде небольшой программы.

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

Например, макрокоманда ActiveDocument.Save в MS Word или АсtiveWorkbook.Save в MS Excel работает в точности как команда меню Файл - Сохранить.

Макросы часто используются для следующих целей:

для ускорения часто выполняемых операций редактирования или форматирования;

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

• для упрощения доступа к параметрам в диалоговых окнах;

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

Существует три основных разновидности макросов:

командные макросы;

• пользовательские функции;

• макрофункции.

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

Например:

• вставка или форматирование фрагмента текста в MS Word;

• изменение рабочего листа или рабочего пространства в MS Excel;

• сохранение или вывод на печать и т. п.

  • Пользовательские функцииработают аналогично встроенным функциям MS Excel.

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

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

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

Автоматическая запись макросов

Способы создания макросов:

• программирование на языке VBA;

• использование макрорекордера.

Макрорекордер- это транслятор, создающий программу (макрос) на языке VBA, которая является результатом перевода на язык VBA действий пользователя с момента запуска макрорекордера до окончания записи макроса.

  • Иногда удается создавать макросы, не написав вручную вообще ни одной строки программного кода.

  • Очень часто оказывается весьма удобным сначала воспользоваться макрорекордером, а затем внести изменения и дополнения в полученный код VBA.

Создание макроса обычно состоит из трех этапов:

подготовка к записи;

• запись макроса;

• редактирование записанного макроса в редакторе VBA.

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

Например:

• предварительный ввод текста в MS Word;

• создание рабочего листа в MS Excel;

• создание вспомогательной таблицы и др.

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

После выполнения всех подготовительных действий можно приступать к записи макроса.

Рассмотрим порядок записи макроса в MS Word.

После выполнения команды Сервис - Макрос – Начать записьна экране появится диалоговое окноЗапись макроса. В этом окне указывается имя макроса (по умолчанию макросам присваиваются имена Макрос1, Макрос2 и т.д.);

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

Возможны следующие варианты при записи макроса во время создания или редактирования документа:

макрос может быть доступен для всех документов, которые создаются на основе шаблона Normal.dot. Тогда он хранится в этом шаблоне (у пользователя должны быть права на изменение шаблона Normal.dot);

• макрос может быть доступен только для текущего документа (в этом случае макрос хранится в документе);

при записи макроса во время создания или редактирования пользовательского шаблона

• макрос может быть доступен для всех документов, основанных на Normal.dot (см. выше);

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

В поле Описание:можно ввести описание макроса.

Если макросу не требуется назначать кнопку панели инструментов, команду меню или сочетание клавиш, то после нажатия кнопки ОК диалоговое окно Запись макроса будет закрыто, а на экране появится специальная панель инструментов Остановить запись всего с двумя кнопками:

Остановить запись- завершение записи макроса;

Пауза- временная приостановка записи выполняемых действий.

Теперь каждое действие записывается в макрос!

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

При необходимости назначить макросу кнопку панели инструментов или команду меню следует нажать кнопку панелии в диалоговом окнеНастройкаперейти на вкладкуКоманды.

В списке Командынужно выбрать записываемый макрос и перетащить его на панель инструментов или в меню. Для настройки кнопки или команды меню можно воспользоваться командами из раскрывающегося спискаИзменить выделенный объект.

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

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

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

Будет открыт редактор Visual Basic, в одном из окон которого вы увидите текст только что записанного макроса.

SubВставкаСимвола()

' ВставкаСимвола Макрос

' Макрос записан 25.11.2006 Notebook

Selection.InsertSymbol.Font:="Wingdings", CharacterNumber:=-3906, Unicode_:=True

End Sub

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

Типичный командный макрос имеет следующие элементы:

• операторы Sub и End Sub;

• имя макроса;

• тело макроса.

Операторы SubиEnd Subрасполагаются в начале и конце макроса и обычно выделяются синим цветом, как и все ключевые слова.

После ключевого слова Sub в командном макросе следует Имя макроса, открывающая и закрывающая круглые скобки (эти скобки служат для указания списка передаваемых процедуре параметров, которые в командном макросе отсутствуют).

Тело макроса- это часть макроса, заключенная между строками с операторами Sub и End Sub. Тело макроса состоит из последовательности операторов, каждый из которых соответствует выполненному действию во время записи макроса.

Существует несколько способов для вызова макросов на выполнение:

Сервис - Макрос - Макросы...выбрать имя макроса и нажатьВыполнить;

• специальная комбинация клавиш быстрого вызова (если она была назначена макросу);

• кнопка на панели инструментов (при условии, что такая кнопка назначалась макросу),

• команда меню (при условии, что такая команда назначалась макросу).