見出し画像

URLの存在確認をする

 Excel VBAでURLの存在確認をするには、主に以下の2つの方法があります。

方法1:Hyperlinksコレクションを利用する

 この方法は、比較的シンプルでわかりやすいのが特徴です。

VBA
Sub CheckURLExists(TargetCell As Range)
' セルにハイパーリンクが存在するかどうかを確認
If TargetCell.Hyperlinks.Count > 0 Then
' ハイパーリンクが存在する場合
MsgBox "ハイパーリンクが存在します。" & vbLf & _
TargetCell.Hyperlinks(1).Address & ":" & TargetCell.Hyperlinks(1).Text
Else
' ハイパーリンクが存在しない場合
MsgBox "ハイパーリンクが存在しません。"
End If
End Sub
コードは注意してご使用ください。

 上記コードは、TargetCell セルにハイパーリンクが存在するかどうかを確認するものです。
 ハイパーリンクが存在する場合、そのURLとアドレスを表示するメッセージボックスが表示されます。

方法2:HTTPオブジェクトを利用する

 この方法は、より詳細な情報を得ることができますが、方法1に比べて少し複雑になります。

VBA
Sub CheckURLExistsWithHTTP(URL As String)
' HTTPオブジェクトを作成
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")

' リクエストヘッダーを設定
http.Open "GET", URL
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

' リクエストを送信
http.Send

' ステータスコードを取得
Dim statusCode As Integer
statusCode = http.Status

' ステータスコードを判定
If statusCode = 200 Then
    ' 存在する場合
    MsgBox "URL " & URL & " は存在します。"
Else
    ' 存在しない場合
    MsgBox "URL " & URL & " は存在しません。" & vbLf & _
           "ステータスコード:" & statusCode
End If

End Sub
コードは注意してご使用ください。

 上記コードは、URL として指定されたURLが存在するかどうかを確認するものです。
 存在する場合、メッセージボックスに「存在します」と表示されます。
 存在しない場合、メッセージボックスに「存在しません」とそのステータスコードが表示されます。

 どちらの方法を使うべきか

上記2つの方法のうち、どちらを使うべきかは、状況によって異なります。

 シンプルでわかりやすい方法を求める場合は、方法1がおすすめです。
 より詳細な情報を得たい場合は、方法2がおすすめです。

参考情報

ExcelでURLのステータスチェック #VBA - Qiita: https://qiita.com/sssssumito/items/5332420d20f8ca538c8c
Excel VBAでオリジナル関数を作成。リンクテキストからURLを抽出する関数を作ってみた。: https://www.northdetail.co.jp/blog/2729/

この記事が気に入ったらサポートをしてみませんか?