ExcelでHyperlinkのURLを抜き出す

概要

ExcelでHyperlink付きのセルからURL (アドレス) のみを抜き出す方法を調べたのでまとめ.

既存の関数だとできないらしく, 自作マクロか自作関数を一時的に用意する必要があるらしい. いずれも開発タブのVisual Basicによって実装可能. 作業が終わったら, 後でそれらのファイルは削除すればマクロ等も残らないのでOK.

 

サンプルファイルと中身の画像は下表:

 サンプル中身の画像
変更前ファイルexcel_origin
変更後ファイルexcel_edited

 

実際の手順の動画:

 

準備

Visual Basicを使うので, 開発タブを表示するように設定しておく

dev-tab

 

 

変換

ハイパーリンク付きのテキスト

自作マクロを使う.

  • 開発タブ -> Visual Basic をクリックし, Microsoft Visual Basicの編集画面を表示する

  • 対象のエクセルを選択しておき, target-excel

  • 挿入 -> 標準モジュール をクリックし, Moduleの編集画面を開く insert-module

  • 下記のマクロのコードをコピペ

excel_hyperlink_macro

  • 実行ボタン run-button を押して, 変換したいセルを選択してOKを押す.

    指定したセルが変換されるので, 元のHyperlink付きのセルを残したい場合は事前にコピーして残しておく必要あり.

    select-range

  • 変換できた edited_macro

 

テキストのみ

自作関数を使う.

  • 開発タブ -> Visual Basic をクリックし, Microsoft Visual Basicの編集画面を表示する

  • 対象のエクセルを選択しておき, target-excel

  • 挿入 -> 標準モジュール をクリックし, Moduleの編集画面を開く insert-module

  • 下記の関数のコードをコピペ. 関数名はGetURL

excel_hyperlink_func

  • GetURL(変換元のセル) で, 変換元のセルのURLをテキストとして抜き出すことができる excel_hyperlink_func_use

    excel_hyperlink_func_use-done

  • オートフィルで他のセルも選択すれば, 変換完了 excel_edited

 

変換後

今回自作したマクロ, 関数が不要の場合は, Microsoft Visual Basicの編集画面で, 自作マクロ, 自作関数を削除すれば良い.

  • 追加した自作マクロ, 自作関数はModule1などの名前になっている remove-module_macro-func_pre

  • これを右クリックして, Macなら「Module1の削除」 Windowsなら「Module1の開放」 をクリックし remove-module_macro-func

  • 出てくるダイアログで「いいえ」をクリックすれば削除できる remove-module_macro-func_dialog-no