Excelでリンク先URLを一括抽出する方法【VBAで簡単取得】

Webサイトからリンク一覧をコピーしてExcelに貼り付けたあと、「リンク先のURLだけをまとめて取得できたら便利なのに」と感じたことはありませんか?

しかし、Excelにはリンク先URLを一括で取り出す標準機能や関数はありません。セルに設定されたリンクのURLをまとめて抽出することはできないのが現状です。

そのため、大量のリンク先URLを効率よく取得するには、VBA(ユーザー定義関数)を使う方法が最もシンプルで確実です。

今回紹介するコードは数行だけ。コピー&ペーストするだけで使えるのでおすすめです。


PR
PR

開発タブを表示する

VBAを使うので[開発]タブを表示させます。

Excelのリボンに[開発]タブが表示されていない場合は、次の手順で表示できます。
すでに[開発]タブが表示されている場合は、この操作は不要です。

  1. ファイル → オプションをクリック
  2. リボンのユーザー設定を選択
  3. 右側の一覧から開発にチェックを入れる
  4. 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だけですよね。

    ▼ 手順

    1. URL列をコピー
    2. 右クリック → 値として貼り付け
    3. 通常のExcel形式(.xlsx)で保存

    これでマクロなしのファイルとして保存できます。


    まとめ

    Excelにリンク付きテキストを貼り付けても、リンク先URLだけをまとめて取り出す標準機能は用意されていません。そこで役立つのが、ユーザー定義関数(VBA)を使った抽出方法です。

    コードはコピー&ペーストするだけで使えるため、プログラミングの知識は必要ありません。また、URLを取得したあとは「値として貼り付け」して保存すれば、通常のExcelファイルとして扱えます。

    リンク整理やデータ収集の効率化に役立つ便利な方法なので、ぜひ活用してみてください。