URLのリンク切れ一括チェックツール(EXCELマクロ)

ベイブ
ベイブ

以下は、Excel VBAで「A列に記載された複数のURLを一括でリンク切れ(有効/無効)をチェックするマクロ」です。結果は同じ行のB列に「OK」または「リンク切れ」と表示されます。

URL一括チェックの機能概要

  • Excel VBAで「A列に記載されたURLのリンク切れ(有効/無効)をチェックするマクロ」
  • 結果は「同じ行のB列」に「OK」または「リンク切れ」と表示

マクロコード(標準モジュールに貼り付け)

以下をVBAの標準モジュールに張り付けてください。

Sub URLリンク切れチェック()
Dim i As Long
Dim lastRow As Long
Dim http As Object
Dim url As String
Dim statusCode As Long

‘ 最終行を取得
lastRow = Cells(Rows.Count, “A”).End(xlUp).Row

‘ 結果出力列を初期化
Range(“B1”).Value = “チェック結果”

‘ HTTPオブジェクト生成
Set http = CreateObject(“MSXML2.XMLHTTP”)

‘ A列のURLを順にチェック
For i = 2 To lastRow
url = Trim(Cells(i, “A”).Value)

If url <> “” Then
On Error Resume Next
http.Open “HEAD”, url, False
http.Send
statusCode = http.Status
On Error GoTo 0

‘ ステータスコードで判定
If statusCode = 200 Then
Cells(i, “B”).Value = “OK”
ElseIf statusCode = 0 Then
Cells(i, “B”).Value = “無効URLまたは接続エラー”
Else
Cells(i, “B”).Value = “リンク切れ (” & statusCode & “)”
End If
Else
Cells(i, “B”).Value = “URLなし”
End If

‘ 少し待機(アクセス集中防止)
DoEvents
Next i

MsgBox “リンクチェックが完了しました。”, vbInformation
End Sub

使用手順

  1. Excelを開く
  2. Alt + F11 → 「VBAエディタ」を開く
  3. メニューの「挿入」→「標準モジュール」を選択
  4. 上記のコードを貼り付ける
  5. Excelに戻り、A列にURLを入力(例: https://example.com)
  6. Alt + F8 → URLリンク切れチェック を実行

補足(改善ポイント)

  • ステータスコード200以外(例:404, 403など)は「リンク切れ」として表示。
  • HEADメソッドを使用して高速化(GETにすると実際のページを取得します)。
  • HTTPS証明書エラーやタイムアウトなども「無効URL」として処理します。

コメント