¿Cómo usar la función Shell en VBA?

La función Shell en VBA (Visual Basic for Applications) se utiliza para ejecutar un programa externo o un archivo desde dentro de un programa de Office, como Excel, Access, Word, etc. Esta función retorna un valor de tipo Variant que representa el ID de tarea (Task ID) del programa que se está ejecutando.

Ejemplo

VBA

Sub EjecutarNotepad()
    Dim rutaPrograma As String
    Dim idTarea As Variant
    
    rutaPrograma = "notepad.exe"
    idTarea = Shell(rutaPrograma, vbNormalFocus)

    If idTarea <> 0 Then
        MsgBox "El programa se ha iniciado con éxito. Task ID: " & idTarea
    Else
        MsgBox "No se pudo iniciar el programa."
    End If
End Sub

En este ejemplo, estamos intentando abrir el Bloc de notas (Notepad). La constante vbNormalFocus especifica el modo en que se abrirá la ventana del programa, en este caso, con el foco normal y permitiendo interacción con el usuario.

Es importante destacar que debes incluir la ruta completa al ejecutable si el programa que intentas ejecutar no se encuentra en una carpeta del sistema o en una ubicación que esté dentro del PATH del sistema.

Ejecutar un programa que se encuentra en una ruta específica

VBA

Sub EjecutarProgramaEspecifico()
    Dim rutaPrograma As String
    Dim idTarea As Variant
    
    ' Cambia la siguiente ruta por la ruta completa de tu programa específico:
    rutaPrograma = "C:\Ruta\A\MiPrograma.exe"
    idTarea = Shell(rutaPrograma, vbNormalFocus)
    
    ' .... Resto del código
End Sub

En cuanto a los modos en los que puedes ejecutar el programa estos son algunos de los más comúnmente usados:

  • vbHide: Oculta la ventana y activa otra ventana.
  • vbNormalFocus: Muestra la ventana en su tamaño y posición más recientes.
  • vbMinimizedFocus: Muestra la ventana minimizada con el foco.
  • vbMaximizedFocus: Muestra la ventana maximizada con el foco.

Asegúrate de manejar posibles errores al usar Shell y recuerda que el programa o archivo que ejecutes será en base a la ruta y permisos del usuario bajo el cual está corriendo la aplicación de Office.

La función Shell puede ser muy útil pero debe usarse con precaución ya que ejecutar archivos o programas de fuentes no confiables puede comprometer la seguridad de tu sistema.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario