Excel(2010)ハイパーリンク:パスにコマンドライン引数とスペースを含めてファイルを呼び出す方法?


2

私は、(プロジェクト)フォルダ構造を管理しやすくするために、Excelドキュメントで作業しています。 HYPERLINK 重要なファイルやフォルダ(Word / Excelなど)を参照してください。

TFSも使用しているので、Excelシート内からチェックアウトおよびチェックインする権利を追加したいと思います。ワンストップ着陸と概要ページ。

単純に

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

セキュリティ警告が表示されますが、プログラムは実行されます。

最後に、私はのようなものが欲しい

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

ただし、これはファイルパス内のスペースやコマンドライン引数では機能しません。 VBを使用せずにこれを実行する方法はありますか?ハイパーリンクの一部を引用符で囲んで(Excelの二重二重引用符を使用しても "" - > ")何も改善されない場合でも、"ファイルが見つかりません "というエラーが表示されます。

そして、私はVBを使用しなければならない場合にのみ(私はセキュリティ警告を好まない)、これをするための最良の方法は何でしょうか?

回答:


8

代わりの方法は、関連するコマンドラインスイッチを埋め込んでショートカットを作成することです。その後、ショートカットにハイパーリンクすることができます。ショートカットの拡張子は.lnkです。

スイッチで単一の実行ファイルを起動するよりももっと複雑なことをしたい場合は、バッチスクリプト(.bat)にリンクすることができます。


4
またはバッチファイルでも同じようにします( .bat ショートカットよりも汎用性があるはずです。
Bob

それは私がパラメータ(例えば、パスを持つセル)を使うことを可能にしません、それでも、それは今ちょうどわずかなオーバーヘッドで、うまく働いています、そして私は後でVBソリューションに行くかもしれません。どうもありがとう!
Andreas Reiff

2

私の知る限りでは、使用することはできません HYPERLINK そのように - アンソニーの素晴らしいトリックを除いて。

ただし、パスが引用符で囲まれている限り、ハイパーリンク内のスペースは関係ありません。

これを解決するには、コマンドラインパラメータを動的にする必要がある場合、または他の理由でanthonysアプローチを使用したくない場合は、VBAを使用する必要があります。

これはきちんとした速い方法でしょう:

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

またはあなたのコードを使用する:

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

ちなみに - ハイパーリンクを通してファイルを実行するとき、通常は警告があります、そしてそうあるべきです。 「警告が嫌い」のためにHYPERLINKを使用したくない場合は、それらも使用します。

一方、VBAソリューションでは、信頼できる署名を使用してワークブックに署名するか、フォルダ内で使用すると、警告が表示されなくなります。


おかげで、私は結局1つのセルにパスを持つために、そして他のセルに単にこれを参照させ、パラメータで異なるファイルを呼び出すためにこれに行くかもしれません。
Andreas Reiff
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.