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

dRetVal = Shell("myfile.bat", mode)

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

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

Value

Variable Nam

Meaning

0

vbHide

Window is hidden and has focus.

1

vbNormalFocus

Window is the normal size and has focus.

2

vbMinimizedFocus

Window is minimized and has focus.

3

vbMaximizedFocus

Window is maximized and has focus.

4

vbNormalNoFocus

Window is normal size, but doesn’t have

focus.

6

vbMinimizedNoFocus

Window is minimized, but doesn’t have

focus.

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

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

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2506) относится к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

ссылка: / excelribbon-DOS_from_Macros [DOS из макросов].