当メモは2019-11-16に投稿されたものを加筆修正し、再掲したものです。
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")
この#
を付ける方法はこちらで知ったのですが、マイクロソフトのヘルプにも書いてないんだよなぁ。
どうなってるんだ。