Поделиться через


Функция Shell

Запускает исполняемую программу и возвращает значение Variant (Double), представляющее идентификатор задачи программы в случае успешного выполнения и ноль в противном случае.

Синтаксис

Shell(путь, [ тип_окна ])

Синтаксис функции Shell использует следующие именованные аргументы:

Part Описание
путь Обязательный элемент; Variant (String). Имя программы, которую требуется выполнить, и все требуемые аргументы или параметры командной строки; может включать в себя каталог или папку и диск. В macOS можно использовать функцию MacID для указания подписи приложения вместо его имени. В следующем примере используется подпись для Microsoft Word: Shell MacID("MSWD")
тип_окна Необязательный элемент. Значение типа Variant (Integer), определяющее тип окна, в котором будет запущена программа. Если аргумент тип_окна опущен, программа запускается в свернутом окне с фокусом на нем. В Mac OS 7.0 и более поздних версиях аргумент тип_окна определяет лишь то, получит ли запускаемое приложение фокус.

Аргумент тип_окна может принимать следующие значения:

Константа Значение Описание
vbHide 0 Окно скрыто, фокус переходит к скрытому окну. Константа vbHide не действует в macOS.
vbNormalFocus 1 Окно получает фокус и восстанавливает свое исходное положение и размер.
vbMinimizedFocus 2 Окно отображается в виде значка и получает фокус.
vbMaximizedFocus 3 Окно разворачивается во весь экран и получает фокус.
vbNormalNoFocus 4 Восстанавливается последнее положение и размер окна. Активное окно остается активным.
vbMinimizedNoFocus 6 Окно отображается в виде значка. Активное окно остается активным.

Примечания

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

В macOS при указании параметра vbNormalFocus, vbMinimizedFocus или vbMaximizedFocus приложение становится активным. При указании параметров vbHide, vbNoFocus или vbMinimizeFocus приложение запускается в фоновом режиме.

Примечание.

По умолчанию функция Shell запускает другие программы асинхронно. Это значит, что программа, запущенная с помощью команды Shell, может не завершиться до того, как будут выполнены операторы, следующие за функцией Shell. Сведения об ожидании завершения программы см. в статье Определение времени окончания процесса в оболочке.

Пример

В этом примере функция Shell используется для запуска указанного пользователем приложения. В macOS диск по умолчанию обозначается "HD", а части аргумента "путь" отделяются друг от друга двоеточиями вместо обратной косой черты. Аналогичным образом, следует указывать папки macOS вместо \WINDOWS.

' Specifying 1 as the second argument opens the application in 
' normal size and gives it the focus.
Dim RetVal
RetVal = Shell("C:\WINDOWS\NOTEPAD.EXE", 1)    ' Open Notepad.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.