セルに入力されたシート名文字列を用いてハイパーリンクを作成する計算式

セルに入力されたシート名文字列を用いてハイパーリンクを作成する計算式

Excelを使用して複数のシート間を簡単に移動できるようにするために、セルの値を用いてハイパーリンクを作成する方法をご紹介します。この方法を使えば、特定のセルに入力されたシート名を利用して、別のシートへのリンクを自動的に生成できます。

ハイパーリンク関数の基本構文

まず、基本的なHYPERLINK関数の構文は次の通りです。

=HYPERLINK(リンク先, [別名])

ここで、リンク先はリンク先のURLまたはセル参照文字列、別名はリンクの表示テキストですが省略可能です。

例えばセルF3へ移動するハイパーリンク計算式は次のようになります。

=HYPERLINK("F3")

別のシート名へ移動するハイパーリンク計算式はやや複雑になります。先頭に「#」を付けてシート名を「’」で囲み「!セル番地」とします。

=HYPERLINK("#'シート名'!セル番地")

例えば「Sheet3」のセルF3へ移動するハイパーリンク計算式は次のようになります。

=HYPERLINK("#'Sheet3'!F3")

シート名を「’」で囲まなくても大体のケースでは問題なく動作します。ただしシート名にスペースなどの特殊記号がある場合には「’」で囲まないと動作しません。基本的には付けるようにしましょう。

セルの値を用いたハイパーリンクの作成

シート名が入力されているセルの値を用いて、特定のシートへのハイパーリンクを作成するための構文は次の通りです。リンク先はシート名だけでなくセル名を指定する必要があります。ここでは便宜上セルA1を指定しています。

=HYPERLINK("#'" & シート名入力セル番地 & "'!A1", [別名])

この構文を用いることで、シート名が入力されているセルの値を動的に使用し、リンクを作成できます。例えばセルB3に「Sheet3」と入力されていて、それを用いる計算式は次のようになります。

=HYPERLINK(“#'” & B3 & “‘!A1”)

具体例

例えば、シート名がSheet0A1:A4に入力されているとします。

A1: Sheet1
A2: Sheet2
A3: Sheet3
A4: Sheet4

これらのシート名を用いて、B1:B4に各シートへのハイパーリンクを作成するには、次のようにします。

B1: =HYPERLINK("#'" & A1 & "'!A1", A1)
B2: =HYPERLINK("#'" & A2 & "'!A1", A2)
B3: =HYPERLINK("#'" & A3 & "'!A1", A3)
B4: =HYPERLINK("#'" & A4 & "'!A1", A4)

実際にセルB1へ以下の計算式を作り、下へコピーすればよいでしょう。

=HYPERLINK("#'" & A1 & "'!A1", A1)

この方法で、B1:B4のセルをクリックすると、それぞれSheet1Sheet2Sheet3Sheet4A1セルに移動できます。

HYPERLINK関数:構文の解説

上記の式の意味は以下の通りです:

  • #:同じブック内のセル参照を示します。
  • &:文字列を連結します。
  • シート名入力セル番地:シート名が入力されているセルの番地です(例:A1)。
  • '(シングルクォート):シート名にスペースや特殊文字が含まれている場合でも正しく参照するために使います。
  • "A1":リンク先のセルを指定します。この例では、各シートのA1セルを参照しています。
  • [別名]:ハイパーリンクのテキストとして表示される名前です。省略した場合は、シート名そのものが表示されます。

カスタマイズ例

ハイパーリンクの別名を変更したい場合、次のように別名をカスタマイズすることができます。

=HYPERLINK("#'" & A1 & "'!A1", "Go to " & A1)

この場合、リンクの別名はGo to Sheet1のようになります。

この方法を使えば、Excelでシート名を動的に利用したハイパーリンクを簡単に作成できます。ぜひ試してみてください。

参考:ワークシート名の一覧を取得するマクロ関数

ワークシート名の一覧を取得する関数の導入方法については以下の記事を参照にしてください。

ワークシート名の一覧をスピル形式で生成する方法(マクロ関数を使用する)
Excelでワークシート名の一覧をスピル形式で生成する方法(マクロ関数を使用する)Excelでワークシートの一覧を取得し、スピル形式で表示させる方法について解説します。この方法を使用すると、現在のワークブック内のすべてのシート名を簡単に取得...

コメント