6

Excelファイルに列があり、その中には「ReleaseDoc」のような値しかありませんが、それらはすべて次のようなものへのハイパーリンクです:

\\server1\folder1\subFolderA\subFolderB\SubFolderC\RealseaseDoc.doc

今、私がやりたいことは、ハイパーリンクから抽出されたファイルのパスを別の列に持つことです。このマクロ関数でそれを行いました

Function HLink(rng As Range) As String
If rng(1).Hyperlinks.Count Then HLink = rng.Hyperlinks(1).Address
End Function

各セルで、アドレスを抽出したい場所から適切なセルでこの関数を呼び出します

問題は、表示されるものが次のようなものであることです。

../../../SubFolderB/SubFolderC/RealeasesDoc.doc

ドキュメントへの完全なパスが表示されません。この vba 関数を手伝ってくれる人はいますか?

PS:私はすでに投稿を検索しましたが、このようなものは何も見つかりませんでした

ありがとうございました

4

2 に答える 2

7

Excel は可能な限りアドレスを相対アドレスに変更します。これを防ぐには、Hyperlink Base プロパティを設定する必要があります。Excel 2010 では、[ファイル] - [情報] をクリックし、必要に応じて [その他のプロパティを表示] をクリックして、C: のハイパーリンク ベースを入力します。

ハイパーリンク ベースがない場合は、ブックのパスと見なされます。C: に設定すると、Excel は C: からの相対パスを作成できないため、強制的にパス全体を表示します。Hyperlink Base \server\folder1\ を作成すると、相対パスが得られます。これは、Excelが相対パスを作成できるためです。

したがって、Address の完全なパスを保証する場合は、Hyperlink Base プロパティをワークブックとは別の共有にするか、ワークブックとは別のローカル ドライブにします。

于 2013-07-05T15:45:15.540 に答える