No Programming, No Life

プログラミング関連の話題や雑記

ExcelのHYPERLINK関数で同一ブック内の別シートにリンクしたい場合は # を付けるといいみたい

f:id:fumokmm:20191116175057j:plain ( 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関数を使ったら?ということみたいなんだけど、ファイル名(ブック名)にリンクが使えなくなる文字とかもあったはずで、とても困ることになる。

f:id:fumokmm:20191116183745p:plain

こんな感じでリンクが使えないことがある!

解決方法

リンク先文字列の頭に # をつけるといいみたいです。こんな感じ。

同一ブック内の別シート

=HYPERLINK("#Menu!A1", "Go to menu")

同一ブック内の同一シートの別セル

=HYPERLINK("#A1", "Go to A1")

この # をつける方法はこちらで知ったのですが、マイクロソフトのヘルプにも書いてないんだよなぁ。どうなってるんだ。

参考

HYPERLINK 関数 - Office サポート

Excel(エクセル)基本講座:HYPERLINK関数の使い方

HYPERLINK関数で、同じブック内のシートにハイパーリンク:Excel(エクセル)の関数・数式の使い方/検索・行列