Запуск макросов в автоматическом режиме по расписанию

При наличии множества пакетных обработок файлов может быть очень удобным назначить им автоматическое выполнение по расписанию. Пакетные обработки могут выполняться через интервалы, друг за другом, без участия пользователей (в ночное время при включенном ПК). Это избавляет от необходимости присутствия оператора для запуска обработок, экономит время на их ожидание. Можно сделать так, что к началу рабочего дня обработчики уже создадут готовые отчеты и пользователям останется только проверить их.
Автоматический запуск из закрытого Excel не возможен. Из ситуации есть два выхода - оставить открытой книгу Excel из которой будут вызываться обработки по расписанию либо воспользоваться внешним vbs-скриптом для этой задачи. который сам по сути является макросом. Макросы для планировщика придется немного изменить - нужно создавать их так, чтобы макрос не запрашивал никаких дополнительных окон и не просил от пользователя никаких действий. Т.е. если применяется пакетная обработка, то в коде макроса нужно указать постоянный путь на диске к обрабатываемым файлам. Также нужно отключить программно все окна уведомления, которые могут возникнуть при работе программы (ранее мы рассматривали пример в котором принудительно отключали уведомления перед удалением листов из книги) чтобы программа не запрашивала подтверждение.

Рассмотрим пример с vbs-скриптом.Скрип vbs создается в обычном блокноте и сохраняется на удобное место на диске с расширением .vbs


Открываем блокнот и записываем следующий код:

set App = createobject("excel.application")
App.visible = false
App.Workbooks.Open("C:\Users\Игорь\AppData\Roaming\Microsoft\AddIns\Учет производства.xlam")
App.Run("ГрупповаяОбработка")
App.quit

Сохраняем файл с расширением .vbs
Данный программа вызывает макрос групповой обработки отчетов средней себестоимости комплексов из нашей надстройки Учет производства.xlam (естественно мы сперва изменили код макроса, точнее перезаписали его - вместо окна выбора папки, указан полный путь к папке обрабатываемых отчетов. Вы носить его на кнопку в Excel сами понимаете - не нужно.

Теперь запустим Планировщик заданий (Windows 7 - в Windows XP может выглядить по другому):

Шаг 1: Создаем новую простую задачу и даем  ей произвольное имя


Шаг2: Выбираем периодичность выполнения:


Шаг 3: Устанавливаем дату и время выполнения:


Шаг 4: Выбираем действие


Шаг 5: Указываем пусть к нашему файлу .vbs


И в конце жмем кнопку "Готово".
На каждую пакетную обработку создаем свой vbs и через планировщик ставим его на автоматическое выполнение, в интервалом от предыдущего так, чтобы первая пакетная обработка смогла бы уже завершится, когда начнется следующая.

Комментарии

Популярные сообщения из этого блога

Пакетная обработка отчетов

Отправка отчетов по электронной почте