動的ハイパーリンクの作成(Microsoft Excel)
マークは、同じブック内のワークシートへのハイパーリンクを作成する方法を考えています。ワークシートの名前が変わるので、彼はリンクが「動的」でなければならないと考えています。彼はまた、ハイパーリンクの「わかりやすい名前」をワークシート名に変更したいと考えています。
これに取り組むにはいくつかの方法があります。 1つ目は、HYPERLINK関数を使用して宛先への単純なハイパーリンクを作成することです。関数の構文は次のとおりです。
=HYPERLINK(link_location, [friendly_name])
2番目のパラメーター(フレンドリ名)はオプションですが、Markのシナリオで使用する必要があることに注意してください。別のワークシートにリンクする場合は、次の方法でそのワークシートのセルのアドレスを指定するだけです。
=HYPERLINK("[myWorkBook.xlsx]MySheet!A1", "Jump There")
これにより、「MySheet」という名前のワークシートのセルA1へのハイパーリンクが提供されます。
「MySheet」に名前が変更されていない限り、これはうまく機能します。名前が変更された場合、または参照されたセルが削除された場合、ハイパーリンクは機能しなくなります。
この潜在的な問題を回避する簡単な方法がありますが、それは新しい潜在的な問題をもたらします。宛先ワークシートで名前付き範囲を作成してから、次の方法でHYPERLINK関数で名前付き範囲を使用できます。
=HYPERLINK("#MyRange","Jump There")
範囲名の前には#記号を付け、引用符で囲む必要があることに注意してください。リンクをクリックすると、名前付き範囲を含むワークシートが表示され、その範囲が選択されます。名前付き範囲を含むワークシートの名前を変更してもかまわないため、以前のアプローチよりも用途が広いです。ただし、指定された範囲が削除されているかどうかは重要です。 (名前付き範囲の一部のみが削除された場合、Excelは微調整されます。名前付き範囲全体が削除された場合にのみボークします。)
これらすべての問題を回避するには、ヘルパーセルを使用する必要があります。
(単純なマクロを1つか2つ使用することもできますが、Markのニーズには行き過ぎかもしれません。)例として、セルA24に次のように入力します。
=MySheet!A1
セルには、MySheetのセルA1にあるものがすべて表示されます。後でMySheetの名前(実際のシート名)を変更すると、数式が自動的に変更されます。 MySheetで行または列を挿入または削除しても、数式のセルA1への参照は変更されません。これにより、常に有効なワークシートとセル参照を使用できます。その参照をHYPERLINK関数で使用できる形式にするには、セルB24に次の数式を配置します。
=MID(FORMULATEXT(A24),99)
FORMULATEXT関数は、セルA24の数式をテキスト文字列に変換し、MID関数を追加すると、数式の先頭から等号が削除されます。示されているように、数式では、最大96文字の非常に長いワークシート名を使用できます(他の3文字は「!A1」です)。次に、次の式を使用して実際のハイパーリンクを作成できます。
=HYPERLINK("[myWorkBook.xlsx]" & B24, "Jump There")
ハイパーリンクターゲットは常に動的で安定しており、まさに必要なものです。ただし、FORMULATEXT関数はExcel2013で導入されたことに注意してください。以前のバージョンのプログラムでは機能しません。
HYPERLINK関数のフレンドリ名の部分について話すのにあまり時間をかけていません。これは、必要なものをほぼすべて参照するように簡単に変更できるためです。たとえば、別のセルを参照して、必要な数式に基づいて値を表示することができます。
=HYPERLINK("#MyRange",A7)
この例では、セルA7にあるものからフレンドリ名を取得します。セルA7の内容を変更すると、フレンドリ名も同時に更新されます。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(13034)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。