Executar comandos do shell a partir da célula do Excel

0

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 eu posso abrir o programa de hiperlink com os argumentos opcionais?

    
por Thom G 19.06.2017 / 12:41

2 respostas

1

descobri o uso do 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 na planilha que contém o IP e isso executará meu programa com esse IP.

    
por 19.06.2017 / 15:54
0

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 há certos problemas ao usar um hiperlink para abrir um arquivo de comando como EXE, BAT, CMD, VBS, etc. Por exemplo:

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

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

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

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

• Uma janela de shell pisca quando arquivos de script longos ou complexos, como CMD ou VBS, são abertos.

A técnica descrita aqui aborda esses problemas sem afetar os hiperlinks padrão do Excel: link

Esta solução adiciona texto semelhante a RUN :: COMMAND à célula do hiperlink e 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"

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

    
por 16.09.2017 / 17:47