Webサイトからリンク一覧をコピーしてExcelに貼り付けたあと、「リンク先のURLだけをまとめて取得できたら便利なのに」と感じたことはありませんか?
しかし、Excelにはリンク先URLを一括で取り出す標準機能や関数はありません。セルに設定されたリンクのURLをまとめて抽出することはできないのが現状です。
そのため、大量のリンク先URLを効率よく取得するには、VBA(ユーザー定義関数)を使う方法が最もシンプルで確実です。
今回紹介するコードは数行だけ。コピー&ペーストするだけで使えるのでおすすめです。
開発タブを表示する
VBAを使うので[開発]タブを表示させます。
Excelのリボンに[開発]タブが表示されていない場合は、次の手順で表示できます。
すでに[開発]タブが表示されている場合は、この操作は不要です。
- ファイル → オプションをクリック
- リボンのユーザー設定を選択
- 右側の一覧から開発にチェックを入れる
- OKをクリック

VBA画面を開く
Excelのリボンに[開発]タブが表示されたら次に進みます。
[開発]タブをクリックし、Visual Basic を選択します。

VBA画面上部のメニューから [挿入] をクリックし、表示された一覧から [標準モジュール] を選択します。

標準モジュールにコードを貼り付ける
次のコードをコピー&ペーストしてください。
Function GetHyperlinkURL(targetCell As Range) As String
If targetCell.Hyperlinks.Count > 0 Then
GetHyperlinkURL = targetCell.Hyperlinks(1).Address
End If
End Function

標準モジュールにコードを貼り付けたら、右上の × でVBA画面を閉じて問題ありません。
Excelの画面に戻ります。
作成した関数でURLを取得する
関数が作成できたら、Excelシートに戻ります。
▼ 使い方
リンクがあるセルをGetHyperlinkURLで選択します。
=GetHyperlinkURL(B2)
これでリンク先URLが表示されます。

そのまま下へコピーすれば、一括抽出できます。

URL取得後は「値」として保存する
ユーザー定義関数を保持するにはマクロ形式(.xlsm)が必要ですが、必要なのはURLだけですよね。
▼ 手順
- URL列をコピー
- 右クリック → 値として貼り付け
- 通常のExcel形式(.xlsx)で保存
これでマクロなしのファイルとして保存できます。
まとめ
Excelにリンク付きテキストを貼り付けても、リンク先URLだけをまとめて取り出す標準機能は用意されていません。そこで役立つのが、ユーザー定義関数(VBA)を使った抽出方法です。
コードはコピー&ペーストするだけで使えるため、プログラミングの知識は必要ありません。また、URLを取得したあとは「値として貼り付け」して保存すれば、通常のExcelファイルとして扱えます。
リンク整理やデータ収集の効率化に役立つ便利な方法なので、ぜひ活用してみてください。