残業を減らす!Officeテクニック

Webページ上にある複数のリンクをコピーしてURLを一気にExcelへ取り込むワザ

Webページのリンク先をExcelで管理する

 今回は、Webページのリンク先URLをExcelでリスト化する際の小ワザを紹介します。リンクを右クリックして「リンクのコピー」するのは辛過ぎます。リンクを一括で開く拡張機能を使って、URLをコピー&ペーストするのも数があると面倒ですよね。

 Microsoft Edgeの[Web選択]の機能で目的のリンクを正確にコピーして、Excelに貼り付けてからURLを一気に抽出します。簡単なVBAのコードを入力しますが、記事内のコードをコピー&ペーストすればOK。マクロファイルとしての保存も不要です。

リンク先をコピーする

 Webページをドラッグして文字列選択すると、意図しない箇所も選択してしまいますよね。何もないところを右クリックして[Web選択]を使ってみてください。狙った箇所を的確に選択・コピー可能です。

Webページをドラッグすると、意図しない位置まで選択してしまう

 コピー後は、Excelを起動して[Ctrl]+[V]キーを押す。リンク先URLを含む文字列として貼り付けられます。

Webページの何もないところを右クリックして[Web選択]を選択する
画面全体がグレーになるので、目的の箇所をドラッグする
マウスのボタンを離すと[コピー]のメニューが表示される。[コピー]をクリックする
Excelの画面に切り替えて[Ctrl]+[V]で貼り付ける
ハイパーリンクとしてURLもコピーされていることがわかる

VBAの画面で標準モジュールを追加する

 [開発]タブからVBAの画面を呼び出して標準モジュールを追加します。[開発]タブは[Excelのオプション]の[リボンのユーザー設定]から表示しておきます。

[Excelのオプション]は[ファイル]タブから[オプション]をクリックして表示できる。[リボンのユーザー設定]をクリックして、[開発]のチェックをONにする

 標準モジュールとは、VBAのコードを記述するためのスペースです。ここでは一時的に利用するだけなので、作業中のファイルをマクロファイルとして保存する必要はありません。入力するコードは以下の通りです。

Function GetURL(cell As Range) As String
GetURL = cell.Hyperlinks(1).Address
End Function

 コピー&ペーストすればOKですが、コードは「GetURL」という名前のユーザー定義の関数(Function)を作成する内容になっています。「cell」は変数名なので何でも構いません。「Hyperlinks(1).Address」はハイパーリンクを取り出すための決まり文句だと考えてください。

[開発]タブにある[Visual Basic]をクリックする
VBAの画面が表示される。[挿入]-[標準モジュール]の順にクリックする
標準モジュールのウィンドウが表示されるので、上記のコードをコピー&ペーストする。VBAの画面を閉じておく

ユーザー定義関数でURLを取得する

 上記の作業で「GetURL」という名前のユーザー定義関数が作成できています。任意のセルに「=ge」と入力して関数名を確認してみましょう。

任意のセルに「=ge」と入力すると、先ほど作成したユーザー定義関数「GetURL」を確認できる
「=GetURL(A2)」と入力する
セルA2に含まれていたハイパーリンク(URL)を抽出できた
オートフィルで数式をコピーしておく

「値」として貼り付けてファイルを保存する

 ユーザー定義関数を保持するにはマクロを含むファイルとして保存する必要がありますが、欲しいのはURLだけですよね。「値」としてURLをコピーして、通常のExcelファイルとして保存しておきましょう。

GetURL関数を使ったセル範囲を選択してコピーしておく。右クリックして[値]を選択する
URLが「値」として貼り付けられた
ファイルを上書き保存しようとすると、マクロに関するメッセージが表示される。マクロなしのファイルとして保存したいので[はい]をクリックする