( photo by ぱくたそ )
Excelの同一ブック内でセルにハイパーリンクをはってシート間をジャンプさせたいことがある。普通だとハイパーリンクの挿入(Ctrl + K)とかで挿入すると思うが、標準のHYPERLINK関数でも実現できる。
HYPERLINK関数
HYPERLINK(リンク先, [別名])
さて、同一ブック内で別シートにリンクをはりたい場合についてですが、マイクロソフトのヘルプを見ると、こんな感じになっている。
サーバー内のフルパス
=HYPERLINK("\\FINANCE\Statements\1stqtr.xlsx", D5)
ローカルPCのフルパス
=HYPERLINK("D:\FINANCE\1stqtr.xlsx", H10)
ブック名とシート名のフルパス
=HYPERLINK("[Book1.xlsx]Sheet1!A10","Go to Sheet1 > A10") または =HYPERLINK(CELL("address",Sheet1!A10),"Go to Sheet1 > A10")
などが書いてあるんだけど、いちいちファイル名(ブック名)まで指定するのは大変だし、リネームされる可能性もあるので埋め込みたくない。そんな時のためにCELL関数を使ったら?ということみたいなんだけど、ファイル名(ブック名)にリンクが使えなくなる文字とかもあったはずで、とても困ることになる。

こんな感じでリンクが使えないことがある!
解決方法
リンク先文字列の頭に #
をつけるといいみたいです。こんな感じ。
同一ブック内の別シート
=HYPERLINK("#Menu!A1", "Go to menu")
同一ブック内の同一シートの別セル
=HYPERLINK("#A1", "Go to A1")
この #
をつける方法はこちらで知ったのですが、マイクロソフトのヘルプにも書いてないんだよなぁ。どうなってるんだ。