¿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.

Aquí hay un ejemplo básico de cómo usar la función `Shell` en 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.

Por ejemplo, para ejecutar un programa que se encuentra en una ruta específica, usarías algo así:

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:RutaAMiPrograma.exe"
    idTarea = Shell(rutaPrograma, vbNormalFocus)
    
    ' .... Resto del código
End Sub

En cuanto a los modos en los que puedes ejecutar el programa (`vbNormalFocus`, `vbHide`, `vbMinimizedFocus`, etc.), 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

Deja un comentario