DOS из макросов

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

dRetVal = Shell («myfile.bat», mode)

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

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

Value

Имя переменной

Значение

0 vbHide Окно скрыто и имеет фокус.
1 vbNormalFocus Окно нормального размера и имеет фокус.
2 vbMinimizedFocus Окно свернуто и имеет фокус.
3 vbMaximizedFocus Окно развернуто и имеет фокус.
4 vbNormalNoFocus Окно нормального размера, но не имеет фокуса.
6 vbMinimizedNoFocus Окно свернуто , но не имеет фокуса.

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

Вы должны помнить, что при использовании Shell целевой файл выполняется сразу же, и он выполняется независимо от Excel. Это означает, что следующая макрос-команда в вашем макросе Excel выполняется немедленно, не дожидаясь завершения работы целевого файла оболочки. Если вам нужен способ обойти такое поведение, вас может заинтересовать эта страница на веб-сайте Чипа Пирсона:

http://www.cpearson.com/excel/ShellAndWait.aspx

Источник: frestage.ru

Бытовой вопрос