Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

La shell de windows

| 7 comentarios

La shell proporciona comunicación entre el usuario y el programa, esto es,  el entorno en que se ejecutan aplicaciones y utilidades (basado en comandos). La shell se encarga entonces de ejecutar los programas a través de los datos que el usuario ha introducido.

En el caso de windows, la shell se compone de todos los programas ejecutables a traves de la extension ".exe"

En excel, se puede utilizar la funcion "shell" para ejecutar estos programas a traves de programacion de macros.

Por ejemplo, para ejecutar la calculadora de windows, podemos introducir el siguiente comando:

Dim Mostrar_calculadora
Mostrar_calculadora = Shell("C:/WINDOWS/system32/calc.exe", 1)
AppActivate Mostrar_calculadora

Esto puede asignarse a un procedimiento (sub) o a un botón  de acuerdo a la utilidad que se le vaya a dar y a las funciones de las que se requiera disponer.

Asimismo, se pueden ejecutar otros programas cambiando el parámetro del programa,

Por ejemplo, si se sustituye por (“C:/WINDOWS/system32/cmd.exe”, 1) se ejecutará la pantalla de comandos, debido a que esta ruta es común en cualquier sistema.

Por otro lado si quisiéramos abrir un documento propio de nuestra PC, podemos utilizar el comando anterior, siempre y cuando conozcamos su ruta. Por ejemplo:

Shell("C:/Documents and Settings/PROPIETARIO/Mis documentos/Downloads/Dropbox 1.4.17.exe", 1)

Este comando ejecutarà el instalador de Dropbox, instalado en la carpeta de descargas

De la misma manera se podrá asignar a un Sub o a un botón de comando

Dennis Contreras

7 comentarios

  1. Estimada,
    Tengo un caso práctico que quiero aplicar mediante macros.
    Mediante un botón en la hoja, quiero abrir un programa que se llama Putty, este programa es para conectarse a servidores de forma remota vía protocolo ssh. Al abrir el programa, este solicita usuario y contraseña.
    Como puedo agregar a la macro el ingreso de datos "en duro" de usuario y contraseña?
    Este es mi script:

    Sub Exe()

    serverName = "zzz"
    username = "xxx"
    password = "yyy"

    PuttyPID = Shell("C:\Program Files (x86)\PuTTY\putty.exe -ssh " & serverName, vbNormalFocus)
    End Sub

  2. Porque diantre me aparece en rojo la sentencia
    Mostrar_calculadora = Shell(“C:/WINDOWS/system32/calc.exe”, 1)
    y no funciona

    gracias

    • Me paré e que debes usar diagonales inversas para el path

    • debes sustituir manualmente las comillas que estan despues del parentesis de apertura y despues de la palabra exe

    • A mi me funciona abre la calculadora pero la línea del final da error de ejecución 5 "Argumento o llamada no válida". Imagino que es debido a la versión de Excel, cuando cambia a la 2016 solo me a dado dolor de cabeza en mis macros.

    • Realizó la declaracion de variable como As String.
      Yo declaro un variable con la direccin de a aplicacion y despues llamo a la variable.
      ej:

      Dim Chrome As String
      Chrome = "C:\Program Files\Google\Chrome\Application\chrome.exe"
      Shell (Chrome)

      esto solo abre chrome, yo uso un For i integrado dentro del navegador.
      Espero te sirva

  3. Hola, a mi me pasó lo mismo que a Mariano. Aprovecho de consultar como desde una macro puedo correr un archivo .bat.

    Saludos

Deja una respuesta

Los campos requeridos estan marcados con *.