Función Shell

Ejecuta un programa ejecutable y devuelve un valor Variant (Double) que representa el Id. de tarea del programa si es correcto; en caso contrario, devuelve cero.

Sintaxis

Shell(pathname, [ windowstyle ])

La sintaxis de la función Shell consta de los argumentos con nombre siguientes:

Parte Descripción
pathname Obligatorio; Variant (String). Nombre del programa para ejecutar y cualquier argumento necesario o modificadores de línea de comandos; puede incluir el directorio o la unidad y carpeta. En Macintosh, puede usar la función MacID para especificar la firma de una aplicación en lugar de su nombre. En el siguiente ejemplo, se usa la firma de Microsoft Word: Shell MacID("MSWD")
windowstyle Opcional. Variant (Integer) que corresponde al estilo de la ventana en la que se ejecutará el programa. Si windowstyle se omite, se inicia el programa minimizado con el foco. En Macintosh (System 7.0 o posterior), windowstyle solo determina si la aplicación obtiene el foco cuando se ejecuta.

El argumento con nombre windowstyle consta de estos valores:

Constante Valor Descripción
vbHide 0 La ventana está oculta y se pasa el foco a dicha ventana. La constante vbHide no es válida para las plataformas de Macintosh.
vbNormalFocus 1 La ventana tiene foco y se restauran su tamaño y posición originales.
vbMinimizedFocus 2 La ventana aparece como un icono con foco.
vbMaximizedFocus 3 La ventana se maximiza con foco.
vbNormalNoFocus 4 Se restaura la ventana a su tamaño y posición más recientes. La ventana activa permanece activa.
vbMinimizedNoFocus 6 La ventana aparece como un icono. La ventana activa permanece activa.

Observaciones

Si la función Shell ejecuta correctamente el archivo con nombre, se devuelve el id. de tarea del programa iniciado. El id. de tarea es un número único que identifica el programa que se ejecuta. Si la función Shell no puede iniciar el programa con nombre, se produce un error.

En Macintosh, vbNormalFocus, vbMinimizedFocus y vbMaximizedFocus colocan la aplicación en primer plano; vbHide, vbNoFocus y vbMinimizeFocus colocan la aplicación en segundo plano.

Nota:

De forma predeterminada, la función Shell ejecuta otros programas de forma asincrónica. Esto significa que un programa que se inicie con Shell puede que no termine de ejecutarse antes de que se ejecuten las instrucciones que siguen la función Shell. Para esperar a que finalice un programa, consulte Determinar cuándo finaliza un proceso de shell.

Ejemplo

Este ejemplo usa la función Shell para ejecutar una aplicación especificada por el usuario. En Macintosh, el nombre de unidad predeterminado es "HD" y las partes de la ruta de acceso están separadas con comas, y no con barras diagonales inversas. De forma similar, debe especificar las carpetas de Macintosh en lugar de \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.

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.