関数でハイパーリンクを自動で変更するには? #Excel #関数

ハイパーリンクを関数で設定するにはHYPERLINK関数を使いますが、関数なら自動的にセルの値を元にジャンプ先も可変にしたいところですよね。

そんな場合はどうしたらよいか、ご紹介していきますね(#^^#)

HYPERLINK関数の復習

HYPERLINK関数自体を知らなかったり、不安な方は下記の記事で復習してから下記本文へ進んでくださいね(*^-^*)

関数でハイパーリンクを設定できるHYPERLINK関数 #Excel #関数 | Excelを制する者は人生を制す ~No Excel No Life~

サンプル

今回のサンプルは上記のHYPERLINK関数の記事と同じです。

月内の日を集計する「サマリ」シートと、MMDD形式の月内の日別シートが暦日分あり、「サマリ」シートの各日のセルから該当日のシートのB4セルにジャンプしたいとします。

もちろん、月によってブックを更新していくので、シート名も月によって変わっていきます。

関数でハイパーリンクを自動で変更する方法

【事前準備】CELL関数でブック名を自動表示させる作業セルを用意する

ハイパーリンク可変①

まず、ブックが月ごとに変わるため、HYPERLINK関数の引数「リンク先」内のブック名の箇所を自動的に変わるようにしなければなりません。

そのためには、ブック名を自動的に表示する作業セルを用意しておくと良いです。

今回は、G1セルにCELL関数を中心に、MID関数、FIND関数を組み合わせて表示させています。

詳細は下記記事をご参照ください。

Excelの関数でブック名・シート名を取得するには? | Excelを制する者は人生を制す ~No Excel No Life~

HYPERLINK関数のブック名の部分を作業セルに置き換える

ハイパーリンク可変②

「0501」シートのB4セルへジャンプさせる場合を例に挙げて解説しますね。

まず、「サマリ」シートの4行目が5/1のデータなので、A4セルにHYPERLINK関数を記述する必要があります。

引数「リンク先」

このHYPERLINK関数の引数「リンク先」はジャンプ先の「0501」シートのB4セルを特定するために文字列形式で入力する必要があります。

つまり、「"[【サンプル】勤怠管理表.xlsx]0501!B4"」の部分ですね。

この文字列を今回は「"["&$G$1&"]"&TEXT($B4,"mmdd")&"!B4"」に書き換えることで自動的に変更できるようにしているわけです。

ブック名の部分は、角カッコ[]で囲む必要があるため、「"["&$G$1&"]"」のようにブック名を表示している作業セル(G1セル)をダブルクォーテーション[""]で囲んだ角カッコ[]をアンパサンド[&]でつなげています。

そして、シート名の部分は、「TEXT($B4,"mmdd")」のようにTEXT関数でB4セルの"2016/5/1"という値をシート名と同じMMDD形式に変更することで代用しているわけです。

あとは、先ほどのブック名の部分とアンパサンド[&]でつなげ、後ろにシート名の後ろのエクスクラメーション・マーク[!]とジャンプ先のセルを表す「"!B4"」をアンパサンド[&]でつなげればOKです。

引数「別名」

今回はTEXT関数でB4セルの"2016/5/1"という値をシート名と同じMMDD形式に変更しています。

TEXT関数については後日別記事で詳細を解説していく予定です。

結果

ハイパーリンク関数②

A4セルがハイパーリンク化されるため、A4セルをクリックすると「0501」シートのB4セルへ無事ジャンプすることができました!

まとめ

「サマリ」シートのB列の日付は同シートのA1セルの値を変えれば数式で自動的に該当月の日付が変わる仕組みになっていますので、ハイパーリンクのジャンプ先もこれで自動的に変わります。

ただし、シートは毎月作り直す必要があるので、マクロなどで自動的に作成できるようにしておくとなお良いですね。

この部分のマクロは後日別記事で解説予定です。

ご参考になれば幸いですm(__)m

サンプルファイル

サンプルファイル_勤怠管理表
※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

上記で作成したサンプルファイルです。
ダウンロードして確認してみてください(・∀・)