Шаг 233.
VBA в MSExcel. Оформление командировочных удостоверений. Вывод на печать бланка командировочного удостоверения

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

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

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

Вывод командировочного удостоверения на печать с использованием стандартных методов

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

    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 в этом приложения присутствуют три основных окна:

Окно проекта
Окно проекта расположено слева вверху (рисунок 4) и содержит несколько папок. В нашем случае имеются папка Microsoft Excel Объекты (рисунок 5), в которой находятся объекты, с которыми производятся действия:


Рис.5. Окно проекта

  • Лист1 (КомандировочноеУдостоверение);
  • Лист2 (ЖурналРегистрацииКУ);
  • ЭтаКнига (в которой записаны эти макросы).

    Вторая папка - Модули, в которой находится элемент Модуль1 (рисунок 4), содержащий записанные макросы вывода на печать 1-й и 2-й страницы.

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

    Окно проекта предназначено для управления различными элементами проекта VBA и открывается с помощью команды Вид | Окно проекта.

    Если обратиться к окну проекта, показанному на рисунке 5, то в объекте Модули находится один элемент Модуль1. Это тот элемент, который создан автоматически при записи макросов вывода документов на печать.

Окно свойств
Окно свойств находится в левом нижнем углу (рисунок 4).

    В окне свойств перечисляются характеристики элементов проекта. Для изменения свойств элемента, выделите его в окне проекта и тогда его характеристики отобразятся в окне свойств. Если выделить элемент Модуль1, то в окне свойств отобразится его имя: Модуль1. Для изменения имени модуля в окне свойств измените значение свойства Name, введя новое имя - Печать (рисунок 6).


Рис.6. Окна Проектов и Свойств с переименованным элементом Модуль1 в элемент Печать

Окно программы
Окно программы самое большое и находится справа (рисунок 4).

    Именно в нем происходит запись текста макроса на языке Visual Basic of Application. Окно программы имеет два режима просмотра:

  • представление полного модуля;
  • представление процедуры.

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

    В режиме представления процедуры отображается только один макрос. Для перехода к следующему макросу, его имя нужно выбрать в раскрывающемся списке в верхней части окна программы или воспользоваться клавишами Ctrl +PageUp и Ctrl+PageDown.

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

Исследование записанного макроса
Ознакомимся с кодом VBA макроса ПечатьЛицевойСтороны. Если окно программ закрыто, то для просмотра макроса в окне проекта активизируйте двойным нажатием на правую кнопку мыши элемент Печать объекта Модули.

    Текст макроса в окне программы содержит следующие элементы (рисунок 4):

  • ключевые слова Sub и End Sub, означающие начало и конец текста макроса, шрифт которых выделен синим цветом;
  • имя макроса, которое следует за ключевым словом Sub начала макроса;
  • комментарии, шрифт которых выделен зеленым цветом;
  • код VBA или непосредственно записанные действия, которые выполняет макрос.

    Комментарии. В нашем примере это те данные, которые вводились в диалоговое окно Запись макроса (рисунок 2). Строка комментария предназначена для описания действий и начинается с апострофа. Удаление комментариев никоим образом не влияет на выполнение макроса. Более подробно комментарии будут рассмотрены далее.

    И, наконец, код записанных действий, выполняемых макросом:

  ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
говорит о том, что с активного окна выделенного (активного) рабочего листа отправить на печать страницы с 1-й по 1-ю в количестве одной копии.

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

    На следующем шаге мы рассмотрим запуск записанных макросов на выполнение из приложения Excel.




Предыдущий шаг Содержание Следующий шаг