Excel (2010) HYPERLINK: como chamar um arquivo com argumentos de linha de comando e espaços no caminho?

2

Estou trabalhando em um documento do Excel para tornar uma estrutura de pasta (project-) gerenciável, usando HYPERLINK s para arquivos e pastas importantes (Word / Excel, etc.).

Como também estamos usando o TFS, desejo adicionar a possibilidade de fazer check-out e check-in diretamente da planilha do Excel. A página de pouso e visão geral de uma parada.

Se eu simplesmente tiver

=HYPERLINK("C:\work\TF.exe";"simple test")

Recebo um aviso de segurança, mas o programa é executado.

No final, quero algo como

=HYPERLINK("C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\TF.exe status $/MyProject/Documents /recursive";"Find local Check Outs in Document folder")

No entanto, isso não funciona para espaços no caminho do arquivo e também para os argumentos da linha de comando. Existe alguma maneira de fazer isso funcionar sem usar o VB? Mesmo se eu embrulhar partes do hiperlink com aspas (usando aspas duplas para o Excel: "" - > ") não melhora nada, recebo o erro" arquivo não encontrado ".

E .. somente somente se eu tiver que usar o VB (não gosto do aviso de segurança), qual seria a melhor maneira de fazer isso?

    
por Andreas Reiff 25.10.2012 / 16:19

2 respostas

8

Uma alternativa é criar um atalho com as opções de linha de comando relevantes incorporadas a ele. Em seguida, você pode hiperlink para o atalho. Observe que o atalho tem uma extensão .lnk.

Se você gostaria de fazer algo mais envolvido do que lançar um único executável com opções, você poderia vincular a um script em lote (.bat).

    
por 25.10.2012 / 17:46
2

Até onde eu sei, não é possível usar HYPERLINK assim - exceto com o truque legal de anthony.

No entanto, os espaços no hiperlink não importam, desde que o caminho esteja entre aspas.

Para resolver isso, você pode ter que usar o VBA, se os parâmetros da linha de comando tiverem que ser dinâmicos ou se você não quiser usar anthonys approch por outros motivos.

Esta seria uma maneira rápida e prática:

Shell "C:\Program Files (x86)\Notepad++\notepad++.exe -notabbar", vbMaximizedFocus

ou para usar seu código:

public sub demo()
  Shell "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\TF.exe status $/MyProject/Documents /recursive"
end sub

A propósito - geralmente há, e deveria haver, um aviso, ao executar arquivos através de hiperlinks. Então, se você quiser usar o HYPERLINK por causa de "não goste de avisos", você os terá lá também;)

Por outro lado - a solução VBA pode evitar avisos, se você assinar sua pasta de trabalho com uma assinatura confiável ou usá-la em uma pasta, que é configurada como confiável para macros.

    
por 25.10.2012 / 17:44