На этом шаге мы рассмотрим особенности вывода на печать бланков командировочных удостоверений и использование для этой цели макросов.
Для того чтобы при выводе на печать заполненного бланка командировочного удостоверения созданный документ был расположен на одном листе бумаги с двух сторон, задайте область печати, причем лицевой и обратной стороны отдельно. Для этого последовательно выполните следующие действия:
После этого с помощью команды Файл | Предварительный просмотр просмотрите, как разместится документ на бумаге и, если необходимо, то произведите устранение недостатков, вызвав диалоговое окно Параметры страницы, нажав на кнопку Страница в меню окна предварительного просмотра.
Возможно два метода последовательного вывода пользователем на печать нескольких командировочных удостоверений, введенных предварительно в журнал регистрации.
1-й метод. Вывод на печать одного командировочного удостоверения, печатая последовательно лицевую сторону, затем обратную. Для этого желательно, чтобы в принтере находился один лист бумаги. Тогда нажав на кнопку Печать на стандартной панели инструментов нужно лист, после вывода его из принтера с распечатанной лицевой стороной, перевернуть и "пропустить" через принтер с другой стороны. Далее повторить эту операцию с оставшимися командировочными удостоверениями.
2-й метод заключается в том, чтобы отпечатать партию командировочных удостоверений с одной стороны, и затем пропустить эти листы бумаги через принтер с другой стороны. Недостаток этого метода заключается в том, что тогда каждый раз, отправляя документ на печать, нужно применять команду Файл | Печать, а после этого в диалоговом окне Печать отмечать номера печатаемых страниц, например, с 1-й по 1-ю, что тоже не совсем удобно.
Недостаток обоих методов заключается в относительной трудоемкости выполнения операций, которая заключается в повторении ряда обязательных однотипных действий и, как следствие, возможности внесения ошибок. Пользователь должен повторять несколько одних и тех же действий, независимо от применяемого метода. В Справочной системе Microsoft Excel в разделе Автоматизация задач написано следующее:
"Если какое-то действие часто повторяется, его выполнение можно автоматизировать с помощью макроса. Макрос - это серия команд и функций. Их можно выполнять всякий раз, когда необходимо выполнить данную задачу. Перед тем как записать макрос, необходимо спланировать шаги и команды, которые он будет выполнять."
Чтобы писать макросы, не обязательно быть опытным (продвинутым) пользователем. Можно с помощью активизации средства записи макроса записать последовательность выполняемых действий. При этом программа записи автоматически преобразует последовательность действий пользователя в код на языке Visual Basic of Application (VBA), который является основой записи макроса.
Принимаем за основу для автоматизации 2-й метод. Предполагаем, что необходимо отправить на печать лицевую сторону сформированных командировочных удостоверений с порядковыми номерами с 1-го по 3-й, после чего повторить ту же операцию с выводом на печать обратной стороны.. Исходя из этого однотипные действия 2-го метода по выводу на печать каждой стороны нужно повторить три раза. Значит было бы удобно отправлять документ на печать одним действием, например, нажатием на кнопку, после чего Excel должен самостоятельно вызвать диалоговое окно Печать, определить выводимые на печать страницы и нажать на кнопку ОК.
Для того чтобы начать запись макроса, выполните команду Сервис | Макрос | Начать запись. Появится диалоговое окно Запись макроса (рисунок 1).
Рис.1. Диалоговое окно Запись макроса
Если это первый записываемый макрос в открываемой книге, то тогда в поле Имя макроса будет указано его имя - Макрос1.
Многие пользователи не изменяют имя макроса и через некоторое время может возникнуть недоразумения - какую операцию выполняет этот макрос. Поэтому сразу измените его имя на ПечатьЛицевойСтороны. Имя макроса должно начинаться с заглавной буквы и между элементами текста имени не должно быть пробелов.
В поле Сочетание клавиш введите букву на английском языке, например, "z" (рисунок 2).
Рис.2. Диалоговое окно Запись макроса после внесения изменений в поля Имя макроса, Описание и Сочетание клавиш
Это позволит сразу же после записи макроса, нажав на комбинацию клавиш Ctrl+z запустить макрос на автоматическое выполнение записанной операции.
В поле Описание будет зафиксирована дата создания макроса и, при желании, в это поле с клавиатуры введите краткое описание задачи макроса, например, Предназначен для печати лицевой стороны командировочного удостоверения.
В раскрывающемся списке Сохранить в находятся:
После нажатия на кнопку ОК или клавишу Enter Excel начинает запись макроса, для чего фиксирует все действия пользователя, независимо от того, правильны ли они. Фиксация действий производится на языке кода VBA и будет осуществляться до остановки записи. Для остановки записи предназначена появляющаяся после начала записи кнопка Остановка (рисунок 3).
Рис.3. Кнопка Остановка
Для записи кода действий, выполняемых макросом, последовательно выполните процедуры по выводу на печать лицевой стороны командировочного удостоверения:
Для записи макроса печати оборотной стороны командировочного удостоверения нужно проделать аналогичную операцию по выводу на печать страницы 2.
Просмотр записанного макроса заключается в просмотре непосредственно сгенерированного текста кода VBA при его записи. Для этого, выполнив команду Сервис | Макрос | Редактор Visual Basic или нажав комбинацию клавиш Alt+F11, откройте приложение Microsoft Visual Basic (рисунок 4).
Рис.4. Приложение Microsoft Visual Basic с записанными макросами вывода на печать лицевой и обратной стороны документа
При запуске Редактора Visual Basic в этом приложения присутствуют три основных окна:
Рис.5. Окно проекта
Вторая папка - Модули, в которой находится элемент Модуль1 (рисунок 4), содержащий записанные макросы вывода на печать 1-й и 2-й страницы.
При создании диалоговых окон и форм может находиться и третья папка - Формы, но здесь она рассмотрена не будет.
Окно проекта предназначено для управления различными элементами проекта VBA и открывается с помощью команды Вид | Окно проекта.
Если обратиться к окну проекта, показанному на рисунке 5, то в объекте Модули находится один элемент Модуль1. Это тот элемент, который создан автоматически при записи макросов вывода документов на печать.
В окне свойств перечисляются характеристики элементов проекта. Для изменения свойств элемента, выделите его в окне проекта и тогда его характеристики отобразятся в окне свойств. Если выделить элемент Модуль1, то в окне свойств отобразится его имя: Модуль1. Для изменения имени модуля в окне свойств измените значение свойства Name, введя новое имя - Печать (рисунок 6).
Рис.6. Окна Проектов и Свойств с переименованным элементом Модуль1 в элемент Печать
Именно в нем происходит запись текста макроса на языке Visual Basic of Application. Окно программы имеет два режима просмотра:
Переключение между этими режимами осуществляется с помощью кнопок, находящимися в левом нижнем углу окна программы.
В режиме представления процедуры отображается только один макрос. Для перехода к следующему макросу, его имя нужно выбрать в раскрывающемся списке в верхней части окна программы или воспользоваться клавишами Ctrl +PageUp и Ctrl+PageDown.
В режиме представления в окне программы находятся все макросы, в записанной последовательности. На рисунке 4 показан режим представления.
Текст макроса в окне программы содержит следующие элементы (рисунок 4):
Комментарии. В нашем примере это те данные, которые вводились в диалоговое окно Запись макроса (рисунок 2). Строка комментария предназначена для описания действий и начинается с апострофа. Удаление комментариев никоим образом не влияет на выполнение макроса. Более подробно комментарии будут рассмотрены далее.
И, наконец, код записанных действий, выполняемых макросом:
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
Текст макроса, который начинается и заканчивается ключевыми словами Sub и End Sub, называется подпрограммой или процедурой.
На следующем шаге мы рассмотрим запуск записанных макросов на выполнение из приложения Excel.