LoginSignup
14
8

More than 5 years have passed since last update.

Excel HYPERLINK関数でハッシュ記号#を含んだファイルパスへのリンクを有効にする

Last updated at Posted at 2018-04-24

はじめに

ExcelのHYPERLINK関数でファイルやフォルダへのハイパーリンクを作成する際に,
パスに#(ハッシュ記号)を含んでいると,#以降の文字列が無効となってしまい,
リンクが意図した動作をしない問題に対処した際のノートです.マクロは使用しません.

以下のリンク先に,"オフィスドキュメント内のハイパーリンクに#を使用することは認められていない"と書かれています.
"NOTE: The pound sign is a valid character to use in a file name but is not accepted in hyperlinks in Office documents."
You cannot use a pound character in a file name for a hyperlink in an Office program

環境

私がテストした環境は以下の通りです.
どちらの環境でも動作を確認できています.

  • テスト環境1
    • Windows 10
    • Excel 2010
       
  • テスト環境2
    • Windows 7
    • Excel 2013

解決策

解決策を以下に示します.
以下の2つの手順を踏み,パスを変換することで,対策が可能であることを確認しました.

パス変換手順

STEP-1. #%23 に変換する

%23# をURLエンコードした際の表記です.
パーセントエンコーディング - Wikipedia

STEP-2. パスの先頭に"file:///"を付加する.

file:/// はローカルファイルにアクセスするためのスキームです.
URIスキーム(URLスキーム)とは - IT用語辞典

パス変換の例

上述の手順を例で示すと以下の通りになります.
#を含むパスの例: C:\temp\#test.txt
STEP-1: C:\temp\%23test.txt
STEP-2: file:///C:\temp\%23test.txt

STEP1, 2をまとめたHYPERLINK関数の例

=HYPERLINK("file:///" & SUBSTITUTE("C:\temp\#test.txt", "#", "%23"))

これで,セルをクリックした際に"#test.txt"というテキストファイルが開けます.

ちなみに...

=HYPERLINK("C:\temp\#test.txt") とそのまま入力すると,#以下が無効となるため,セルをクリックした際にC:\temp\ というフォルダが開いてしまいます.

また, =HYPERLINK("#A1") などと記述することで,シート内の指定のセル(A1)にジャンプするリンクを作成できます(本来の使い方?).

14
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
8