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
26/02/2018 a las 3:20 pm
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
26/04/2018 a las 8:07 pm
Porque diantre me aparece en rojo la sentencia
Mostrar_calculadora = Shell(“C:/WINDOWS/system32/calc.exe”, 1)
y no funciona
gracias
13/08/2018 a las 9:34 am
Me paré e que debes usar diagonales inversas para el path
26/10/2018 a las 8:01 pm
debes sustituir manualmente las comillas que estan despues del parentesis de apertura y despues de la palabra exe
29/03/2020 a las 1:34 am
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.
08/07/2022 a las 10:15 am
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
06/08/2020 a las 11:17 am
Hola, a mi me pasó lo mismo que a Mariano. Aprovecho de consultar como desde una macro puedo correr un archivo .bat.
Saludos