Mezgaには、ハイパーリンクを含む一連のセルがあります。これらのハイパーリンクは、「ここをクリック」や「詳細情報」などの単語で構成されています。つまり、各ハイパーリンクには、リンクがクリックされたときにアクティブ化される基になるURLとは異なる表示テキストが含まれています。 Mezgaは、マクロを使用せずに、これらの各ハイパーリンクの基になるURLを抽出し、そのURLを別のセルに配置する方法があるかどうかを知りたいと考えています。

マクロを使用せずに、これを行うことができます:

。ハイパーリンクを右クリックします。コンテキストメニューが表示されます。

。 [コンテキスト]メニューから、[ハイパーリンクの編集]を選択します。 Excelは、[ハイパーリンクの編集]ダイアログボックスを表示します。 (図1を参照)

。ダイアログボックスの[アドレス]フィールドからURL全体を選択してコピー(Ctrl + C)します。

。 Escキーを押して、[ハイパーリンクの編集]ダイアログボックスを閉じます。

。 URLを任意のセルに貼り付けます。

これは単一のハイパーリンク用であることに注意してください。ワークシートに多数のハイパーリンクがあり、URLを回復したい場合は、すべてのハイパーリンクに対してこれを行う必要があります。明らかに、これは非常にすぐに面倒になる可能性があります。

退屈な治療法は、それらのように、またはそうでなくても、マクロです。マクロを使用すると、ハイパーリンクの基になるURLにアクセスするのは子供の遊びです。マクロが行う必要があるのは、ハイパーリンクのAddressプロパティに注意を払うことだけです。

以下は、ワークシート内の各ハイパーリンクを検索し、それぞれのURLを抽出し、そのURLをハイパーリンクのすぐ右側のセルに貼り付けるマクロの例です。

Sub ExtractHL()

Dim HL As Hyperlink     For Each HL In ActiveSheet.Hyperlinks         HL.Range.Offset(0, 1).Value = HL.Address     Next End Sub

「ブルートフォース」マクロの代わりに、ポイントされたハイパーリンクのURLを抽出して返すユーザー定義関数を作成することもできます。

Function GetURL(rng As Range) As String     On Error Resume Next     GetURL = rng.Hyperlinks(1).Address End Function

この場合、好きな場所に配置できます。たとえば、A1のハイパーリンクからのURLをセルC25にリストする場合は、セルC25に次の数式を入力します。

=GetURL(A1)

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3281)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。