
以下は、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 iMsgBox “リンクチェックが完了しました。”, vbInformation
End Sub
使用手順
- Excelを開く
- Alt + F11 → 「VBAエディタ」を開く
- メニューの「挿入」→「標準モジュール」を選択
- 上記のコードを貼り付ける
- Excelに戻り、A列にURLを入力(例: https://example.com)
- Alt + F8 → URLリンク切れチェック を実行
補足(改善ポイント)
- ステータスコード200以外(例:404, 403など)は「リンク切れ」として表示。
- HEADメソッドを使用して高速化(GETにすると実際のページを取得します)。
- HTTPS証明書エラーやタイムアウトなども「無効URL」として処理します。
コメント