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/
この記事が気に入ったらサポートをしてみませんか?