
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.