Функция 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 и обратная связь.