圧倒的に簡単!ExcelVBAでURLリンクを一括抽出する方法

パソコンパソコン・スマホ教室
スポンサーリンク

Excelで大量のハイパーリンクを管理していると、「このリンク先のURL、どうやって一気に取り出すんだろう?」と悩んだことはありませんか?リンク先URLを一つずつ手作業でコピーするのは非常に時間がかかり、ミスも起きやすい作業です。しかし、実はVBAを使えば、この作業を簡単に一括で処理できる方法があるんです!この記事では、初心者でもわかりやすく、Excel VBAで「URLリンクを一括で抽出する方法」を実践的に解説します。

Excelの機能でハイパーリンクのURLを簡単に抽出できる方法があれば、業務の効率が劇的に向上しますよね。さあ、VBAを使ってURLを簡単に取り出す方法を、段階的に学んでいきましょう!

スポンサーリンク

VBAでURLリンクを抽出する方法

Excelのイメージ

Excelのイメージ

ExcelのVBAを使えば、リンク先URLを自動で抽出でき、膨大なリンクデータを一瞬で整理することが可能です。まずは、VBAを使うための準備をしっかりと整えましょう。

VBAを使うための基本的な設定

VBAを使うためには、まずExcelの設定を変更して「マクロ」を有効化する必要があります。ここではその手順を簡単に説明します。

  1. Excelを開き、「ファイル」タブをクリックします。
  2. 「オプション」を選択し、メニューの「セキュリティセンター」を選びます。
  3. 「セキュリティセンターの設定」を開き、「マクロの設定」を選択します。
  4. 「警告を表示してすべてのマクロを無効にする」または「すべてのマクロを有効にする」を選びます。
  5. 「すべてのマクロを有効にする」はセキュリティリスクがあるため、信頼できるファイルでのみ使うようにしましょう。

VBAエディタの起動とコードの入力

マクロの設定が整ったら、次にVBAエディタを起動してコードを入力します。以下の手順に従って、リンク先URLを抽出するコードを入力しましょう。

  1. Excelを開き、A列にハイパーリンクが設定されたシートに移動します。
  2. 「Alt」キーと「F11」キーを同時に押して、VBAエディタを開きます。
  3. VBAエディタの上部メニューから「挿入」→「標準モジュール」を選択します。
  4. 新しいモジュールが作成されるので、そこに次のコードを貼り付けます。
vba
Function LNK(rng As Range) As String
On Error Resume Next
LNK = rng.Hyperlinks(1).Address
On Error GoTo 0
End Function

このコードは、A列の各セルに設定されたハイパーリンクからリンク先URLを取り出し、B列に表示するものです。

オートフィルで一括抽出

コードを入力したら、次にExcelのセルに数式を入力して、リンク先URLを自動で抽出します。

  1. B1セルに次の数式を入力します
  2. 「=LNK(A1)」と入力し、オートフィル機能を使ってB列のすべてのセルにURLを表示させます。
  3. A列のセルにハイパーリンクが含まれている場合、対応するB列にURLが表示されます。

これで、A列にあるすべてのハイパーリンクのリンク先URLを一括で抽出できます。

Excel VBAでさらに便利な活用法

VBAを使うことで、さらに高度なURLの抽出やフィルタリングが可能です。ここではいくつかの便利な活用方法を紹介します。

特定のキーワードを含むURLのみ抽出

例えば、「google.com」や「yahoo.co.jp」といった特定のキーワードを含むURLだけを抽出したい場合、以下のようにコードを変更することができます。

vba
Function FilteredLNK(rng As Range, keyword As String) As String
On Error Resume Next
If InStr(rng.Hyperlinks(1).Address, keyword) > 0 Then
FilteredLNK = rng.Hyperlinks(1).Address
Else
FilteredLNK = ""
End If
On Error GoTo 0
End Function

この関数を使うことで、例えば「google.com」というキーワードが含まれているURLのみを抽出できます。

複数のシートからURLを一括抽出

もし複数のシートにわたってURLを一括で抽出したい場合、VBAを使ってシートごとにURLを抽出することもできます。次のようにコードを作成すれば、すべてのシートからURLを収集できます。

vba
Sub ExtractURLsFromAllSheets()
Dim ws As Worksheet
Dim rng As Range
Dim i As Integer
Dim outputRow As Integer

outputRow = 1

For Each ws In ThisWorkbook.Sheets
Set rng = ws.Range("A1:A100") ' 必要に応じて範囲を変更
For i = 1 To rng.Rows.Count
If rng.Cells(i).Hyperlinks.Count > 0 Then
Cells(outputRow, 2).Value = rng.Cells(i).Hyperlinks(1).Address
outputRow = outputRow + 1
End If
Next i
Next ws
End Sub

このコードは、すべてのシートをループし、A列に含まれるすべてのリンクのURLを抽出し、B列に表示します。

よくある質問

Q1: ハイパーリンクが設定されていないセルにも対応できますか?

はい、できます!VBAコードには「On Error Resume Next」が含まれており、エラーが発生しても無視して次に進むようになっています。リンクがないセルに対しては空白が返されるため、エラーを心配する必要はありません。

Q2: これらのコードは複数のExcelファイルにも適用できますか?

はい、複数のExcelファイルにも適用できます。マクロを含むExcelブックを開き、同様の手順で他のブックに対してもVBAを実行できます。

今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

VBAを使えば、Excel内のハイパーリンクからリンク先URLを簡単に抽出できることがわかりました。手作業でリンクをコピーする必要がなくなり、作業の効率が大幅に向上します。さらに、特定の条件に合わせてURLをフィルタリングしたり、複数のシートから一括で抽出することも可能です。

今後、Excelで大量のリンクを管理する際には、この方法を活用して作業を劇的に効率化しましょう!

コメント

タイトルとURLをコピーしました