« 前のQ&A | メインページ | 新着順一覧 | 次のQ&A »

Excel でリンク付きのセルから URL を抽出する

質問Excel でリンク付きのセルから URL を抽出することはできますか?

回答「ハイパーリンクの編集」で表示されるアドレスをコピーできます。「マクロ」や「Officeスクリプト」で自動化も可能です

たとえば Webページ上に複数のリンクがあって一覧表示されているとき、まとめて選択してからコピーして、

qa250924-01.png

Excel 上で貼り付けると、リンクが付いたままで一覧表示が可能です。

qa250924-02.png

このリンク付きのセルから URL を抽出するには、セルを右クリックでメニューから「ハイパーリンクの編集...」を選択して、

qa250924-03.png

開いた画面でアドレス(URL)が選択された状態なので、そのままコピーすることができます。

qa250924-04.png

「ハイパーリンクの編集」のショートカットキーは「Ctrl + K」なので

  1. リンク付きのセルを選択
  2. 「Ctrl + K」で「ハイパーリンクの編集」画面を開く
  3. 「Ctrl + C」で選択された URL をコピー
  4. 「Esc」キーで「ハイパーリンクの編集」画面を閉じる
  5. 右矢印キーを押し、「Ctrl + P」で右隣のセルに貼り付け

というキー操作が効率的でしょう。特に「Ctrl + K」と「Ctrl + C」は 「Ctrl」キーを押しながら「K」「C」と連続して押せばいいわけです。

少ない数なら、この操作で充分に便利ですが、数が多くなると手間になってきます。

 

そこで「リンク付きセルから URL を抽出できる関数」があればいいのですが、私の知る限りではありません。

逆に「セルに挿入する文字列にリンクを付けられる関数(HYPERLINK関数)」はありますが、URL の抽出には使えません。

そんな中、Excel の「マクロ」機能を使って実現する方法ならあります。

記事通りに「標準モジュール」として「GetURL」という関数を作成して

qa250924-05.png

リンク付きセルの右隣りに挿入して

qa250924-06.png

問題なく URL を右のセルに出力でき、それを下までドラッグすることで一括で抽出して出力できました。

qa250924-07.png

「マクロ」の使用に抵抗がなければ先述の記事をご参照ください。


◆◇◆

さらに今回は「マクロ」とは別に Microsoft365 の Excel で利用できる自動化機能「Officeスクリプト」を使う方法を紹介しておきます。

手順は

  1. リボンを「自動化」タブに切り替え
  2. 「新しいスクリプト」ボタンで「コードエディターで作成」を選択
    wd250924-03.png
  3. 画面左のサイドバーに表示される「コードエディター」で「名前の変更」をたとえば『リンクの URL抽出』にして保存
  4. コード入力ボックスに、以下のスクリプトをコピー&貼り付け

=== この下の行からスクリプトをコピー ===
function main(workbook: ExcelScript.Workbook) {
  // リンクを含むセル範囲を選択
  const range = workbook.getSelectedRange();

  // 範囲内の各セルを反復処理
  const values = range.getValues();
  let outUrls: (string | boolean | number)[][] = [];

  for (let i = 0; i < values.length; i++) {
    const cell = range.getCell(i, 0); // 各行のセルを取得
    const hyperlink = cell.getHyperlink();

    if (hyperlink) {
      // リンクが存在する場合、URLを抽出して配列に追加
      outUrls.push([hyperlink.address]);
    } else {
      // リンクがない場合、空の文字列を追加
      outUrls.push([""]);
    }
  }

  // 抽出したURLを選択したセル範囲の右隣の列に書き出す
  const nextCell = range.getOffsetRange(0, 1).getCell(0, 0) ;
  nextCell.getResizedRange(outUrls.length - 1, 0).setValues(outUrls);
}
== この上の行までスクリプトをコピー ===

qa250924-08.png

  1. Excel で URL を抽出するリンクがあるセルを選択
    qa250924-09.png
    ※ 縦方向なら複数セルの範囲選択にも対応しています。
  2. 「リンクの URL抽出」スクリプトの「実行」ボタンをクリック
    qa250924-10.png

これで選択セルの右隣のセルに抽出した URL が書き出されます。

qa250924-11.png

保存した「リンクの URL抽出」スクリプトは何度でも利用が可能です。

qa250924-12.png

 

理解を深めるための「パソコン用語解説

記事の情報は公開時あるいは更新時のもので、最新情報はリンク先など情報元の公式ページでご確認ください。

スポンサーリンク

ご意見&コメント

パソコントラブルQ&A」をご利用いただき、ありがとうございます。

「参考になった」「ちょっと違うかも?」というときは TwitterFacebookページを使ってご感想やコメントをいただけると嬉しいです!励みにもなりますし、必要に応じて情報の追加や修正もしてまいります。

 

同じカテゴリー「エクセル(Excel)」のQ&A

 

同じカテゴリー「エクセル(Excel)」の用語解説

関連した記事を検索

パソコントラブルQ&A」「パソコン用語解説」では関連Q&Aや用語解説を豊富に掲載中です。検索してみてください!

« 前のQ&A | メインページ | 新着順一覧 | 次のQ&A »

年別Q&A (1207 件)

編集長のプロフィール

編集長

:パソコン生活応援アドバイザー。「なにしろパソコン.com」サイト運営、メルマガ編集、セミナー講師からコラム・書籍執筆まで実績豊富!

「パソコントラブルQ&A」ではトラブル解決のヒントなども紹介していますが、解決をお約束するものではありません。 トラブルの深刻度やご利用のパソコン環境によっては効果がなかったり、ほかのトラブルを誘発する場合もあります。そのため、作業前に大切なデータは、ご自身で必ずバックアップをおこなってください。

本サイトを参考にしたパソコン設定、サイト閲覧、紹介したソフトウエアや機器の購入&使用、そしてトラブル対応やインターネット活用は『利用者の責任』でお願いします(免責事項)。