Execute comandos Shell da célula do Excel

Execute comandos Shell da célula do Excel

Eu tenho um comando shell para executar um programa com argumentos adicionais.

Shell "C:\Program Files\uvnc bvba\UltraVnc\vncviewer" & " " & Range("$G3")

A célula G3 contém um endereço IP com o qual desejo iniciar o programa.

Não tenho problemas para iniciar o comando a partir de um botão de comando, mas o que desejo fazer é iniciar o programa com argumentos de uma célula com hiperlink, usando:

= HYPERLINK("C:\Program Files\uvnc bvba\UltraVnc\vncviewer" & " " & Range("$G3"))

Mas o hiperlink não pode abrir o programa com argumentos opcionais.

Existe alguma maneira de abrir o programa a partir do hiperlink com os argumentos opcionais?

Responder1

descobri isso usando VBA:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("range here")) Is Nothing Then
   Call Shell("program location" & " " & Target)
Else

Agora clico duas vezes em uma célula da planilha que contém o IP, e isso executará meu programa com esse IP.

Responder2

Os hiperlinks do Excel são bons para abrir páginas da web, arquivos PDF ou outros arquivos compatíveis com o Microsoft Office. Mas existem alguns problemas ao usar um hiperlink para abrir um arquivo de comando como EXE, BAT, CMD, VBS, etc.

• Uma caixa de diálogo de aviso com botões OK/Cancelar deve ser negociada.

• Não é conveniente adicionar argumentos de linha de comando, especialmente se eles dependerem de outras células.

• O caminho do arquivo de comando pode ser difícil de especificar, especialmente se o arquivo Excel for movido.

• Quando um atalho de arquivo de comando é especificado, seu tipo (.LNK) deve ser incluído.

• Uma janela do shell piscará quando arquivos de script longos ou complexos, como CMD ou VBS, forem abertos.

A técnica descrita aqui aborda esses problemas sem afetar os hiperlinks padrão do Excel:http://blog.contextures.com/archives/2017/09/14/excel-hyperlinks-run-command-files/

Esta solução adiciona texto semelhante a RUN::COMMAND à célula do hiperlink e, em seguida, processa esse texto usando o VBA adicionado ao código de evento FollowHyperlink da planilha. Por exemplo, se a célula do hiperlink exibir

This cell is a hyperlink to RUN::"Notepad.exe" "SomeFilePath.BAS"

então o arquivo BAS especificado será aberto no Bloco de Notas.

informação relacionada