
No.2ベストアンサー
- 回答日時:
誰もレスを付けないと思いましたので、こちらでも作りましたのでアップしておきます。
#1の方とは、少し意味が違う部分があるかと思います。
以前、ここの掲示板で出したことがあると思うのですが、もう見つかりません。
一応、今回は、自分用で作ってみました。プロバイダからクレームが付きそうな気がしましたが、実行してしまいました。常識の範囲でお使いください。あまり速くはありませんが、ハングはしませんでした。
リンク先のチェックは、838件を一気にチェックしてしまいましたが、これほどはやらないほうが良いかもしれません。100件やって休むとかしたほうが良いような気がします。
ユーザー定義関数の戻り値は、いくつかあります。ステータス200は、◯ですが、その他は、種類がいろいろありますので、×にせずに数値や文字にしました。基本的に、ステータスコードの200は、全部返しました。
数字については、ステータス・コード表をごらんになってください。
http://www.asahi-net.or.jp/~ax2s-kmtn/ref/status …
例:
404 サイトがなくなっています。
403 アクセス権限がないということですから、ログインしなければ分からないかもしれません。
他にも、いくつか種類が出てきます。
n.a と出るのは、サーバーが受け付けないものだと思います。
アンチウィルスソフトで、禁止区域に入った時は、メッセージが出てきました。しかし、そのままで続いていきます。
このマクロ使用中でも、スクロールは可能です。
場所は標準モジュールです。
''//--
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private objHTTP As Object
Sub Main_URLChecking()
Dim c As Range
Dim i As Long
''Microsoft WinHTTP Service, version 5.1 '参照設定する場合
''Set objHTTP=New winHttp.WinHttpRequest '
For Each c In Range("B2", Cells(Rows.Count, 2).End(xlUp))
If LCase(c.Value) Like "http://*" Then
c.Offset(, 1).Value = CheckURL(c.Value)
Sleep 200 'Wait を掛ける
DoEvents 'ESCで離脱できるようにする。
End If
Next
Set objHTTP = Nothing
End Sub
Function CheckURL(ByVal strURL As String) As Variant
Dim num As Variant
On Error GoTo ErrHandler
If objHTTP Is Nothing Then
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
End If
objHTTP.Open "GET", strURL, False
objHTTP.Send
If objHTTP.Status = 200 Then
CheckURL = "◯"
Else
CheckURL = objHTTP.Status
End If
Exit Function
ErrHandler:
If Err() <> 0 Then
CheckURL = "n.a"
End If
End Function
''//--
なお、今度は、これを、ハイパーリンクのリストに反映しないといけないのかな?
ご回答ありがとうございます。
無事に処理することが出来ました。
マクロ使用中でもスクロール出来るのはすごく良かったです。
大変助かりました。
ありがとうございました。
No.1
- 回答日時:
できました。
標準モジュールに以下のコードを記載し、
B2セルから下にチェックしたいURLを並べて実行してください。
URLはハイパーリンクでなくても構いません。
Sub test()
Dim req
Dim MyUrl As String
Dim cnt As Long
Dim i As Long
Dim MyRng As Range
Set req = CreateObject("Microsoft.XMLHTTP")
cnt = Cells(2, 2).CurrentRegion.Rows.Count
For i = 1 To cnt
Set MyRng = Range("B2").Cells(i, 1)
MyUrl = MyRng.Value
req.Open "GET", MyUrl, False
req.Send
' Debug.Print req.Status
If Not (req.Status >= 200 And req.Status < 300) Then
MyRng.Cells(1, 2).Value = "×"
Else
MyRng.Cells(1, 2).Value = "◯"
End If
Next i
End Sub
参考にさせていただいたページ
http://www.excel.studio-kazu.jp/kw/2010072916151 …
http://www.excel.studio-kazu.jp/kw/2005092716325 …
http://www.relief.jp/itnote/archives/excel-vba-c …

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA リンク更新について A、B、Cのファイルかあります。 (Aファイルのリンク元Bフ 1 2022/09/21 13:40
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Visual Basic(VBA) エクセルでフォームのチェックボックスを使用した日付表示切替を作りたい 3 2023/07/11 10:47
- その他(ブログ) なぜ、ホームページが削除されても、そのホームページ上の画像のリンク先がリンク切れになる場合 5 2023/07/15 10:24
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Excel(エクセル) 「Excelのオプション」の「ユーザーインターフェイスのオプション」の設定値をVBAで取得したい 1 2022/07/31 23:49
- Chrome(クローム) ホームページ掲載の複数のリンクのリンク切れを全部簡単にチェックする方法ないですか? 1 2023/06/02 05:16
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
このQ&Aを見た人はこんなQ&Aも見ています
-
URLのリンク切れをマクロを使って表示する方法を教えてください。
その他(プログラミング・Web制作)
-
リンク切れチェックを行うマクロ
Excel(エクセル)
-
【エクセル】ハイパーリンク先のチェック
Excel(エクセル)
-
-
4
VBAで有効なURLのみ抽出する方法
Excel(エクセル)
-
5
VBスクリプトでIEの404 not foundエラーを検出する
Visual Basic(VBA)
-
6
EXCEL2000VBAでハイパーリンクの有無を調べたい。
Excel(エクセル)
-
7
Excel でのリンク切れの探し方
Excel(エクセル)
-
8
括弧があるとHYPERLINKで飛べない?
Excel(エクセル)
-
9
UserForm1.Showでエラーになります。
工学
-
10
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
13
エクセルでのハイパーリンク切れについて
Excel(エクセル)
-
14
エクセルの散布図のX軸に文字を表示したいのですが、どうしたらよいのでしょうか?
Excel(エクセル)
-
15
VBからブラウザの表示状態(リクエストURLの存否)を確認するには
Visual Basic(VBA)
-
16
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
17
EXCELでコピーしたグラフのデータ範囲変更について
Excel(エクセル)
-
18
EXCEL VBAで、URLを入力して、そのURLが存在するかどうか調べるような命令はあるでしょうか。
Visual Basic(VBA)
-
19
EXCELマクロでブック内のリンク状態を取得する方法
Excel(エクセル)
-
20
VBAからのHYPERLINK関数のアドレス取得法
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
vba userFormのSubを標準モジュ...
-
モジュールとクラスの違いって...
-
エクセルVBAでシートモジュール...
-
Excel VBA 定義されたプロージ...
-
モジュールからフォームのボタ...
-
VBAで旧字体を異字体に一括で変...
-
大量の標準モジュールを解放す...
-
acwzlibとは?
-
VBAのモジュールについて教えて...
-
'Range'メソッドは失敗しました
-
Excel VBA 『Call』で呼び出す...
-
Excelシート内セル記述の違いに...
-
xoops myAlbum-Pで画像がアッ...
-
VBのフォームモジュールと標準...
-
プログラムでノッチフィルタの...
-
AddressOf と同じ機能を持った...
-
VBIDEで未使用の変数の抽出
-
【Excel VBA】標準モジュールに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
Excel VBAで、ユーザーフォーム...
-
ユーザー定義関数に#NAME?が返...
-
vba userFormのSubを標準モジュ...
-
Excel VBA 定義されたプロージ...
-
モジュールとクラスの違いって...
-
モジュールの最大数はいくつな...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 『Call』で呼び出す...
-
エクセルVBAでシートモジュール...
-
VBでグローバル変数を宣言するには
-
【vba】フォームに書いてあ...
-
SendKeysの使い方について
-
モジュールからフォームのボタ...
-
VBAで旧字体を異字体に一括で変...
-
モジュールとは何ですか
-
ExcelでTelnetを動かしたい
-
標準モジュールを削除したい。(...
-
VBA This Workbookモジュール...
-
Access VBA標準モジュールにつ...
おすすめ情報