No.4ベストアンサー
- 回答日時:
#1~#3です。
直接の回答になっておりませんが、IEのbookmarkからURLを抽出して試行してみました。その結果、訳の分からない実行時エラーで止まったり、12000番台のWinInetのエラーが出てみたりと、なかなか奥が深いです。下記コードで、200番台を戻さないURLはリンク切れと判断してよいかと思います。当方のbookmarkでは正常につながるものは、すべて200を返しました。ほかは0(実行時エラー)または12000番台のエラーが多く、404と503がそれぞれ一個でした。(URL100個中)なお、キャッシュされますので、二回目以降の実行時は配慮が必要です。
Sub test()
Dim targetRange As Range, myCell As Range
Dim myURL As String
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set targetRange = Range(Range("A1"), Range("A" & Rows.Count).End(xlUp))
For Each myCell In targetRange.Cells
myURL = myCell.Hyperlinks.Item(1).Address
'必要によりキャッシュ削除 下記URL参照
'http://hanatyan.sakura.ne.jp/vbhlp/DelUrl.htm
myCell.Offset(0, 1).Value = checkUrlLink(myURL)
Next myCell
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Private Function checkUrlLink(myURL As String) As Long
Dim req As Object
Set req = CreateObject("Microsoft.XMLHTTP")
req.Open "GET", myURL, False
On Error Resume Next
req.send
On Error GoTo 0
If Err.Number = 0 Then
checkUrlLink = req.Status
Else
checkUrlLink = 0
End If
Set req = Nothing
End Function
参考URL:http://support.microsoft.com/kb/193625/ja
ご回答頂きありがとうございます。
お礼が遅くなり申し訳ありません。
まさしくこれを求めていました!使わせていただきます。
ありがとうございました^^
No.3
- 回答日時:
#1です。
後学のために動かしてみました。XL2010でやっていますが、XL2000の知識で組んでいます(^^;)A列にA1からハイパーリンクが入っているとします。B列にチェックした結果を戻します。False=リンク切れ。
失礼してOKWaveの質問のURLを100個作成して試験してみましたが、約2分10秒かかりました。(11g無線LAN環境)やってみて分かった事は、OKWaveは質問が存在しなくても、「質問がみつからない」というhtmlを戻すので、Falseにならないという事です。という事で、本当の試験はできておりませんが、ご参考まで。
Sub test()
Dim targetRange As Range, myCell As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set targetRange = Range(Range("A1"), Range("A" & Rows.Count).End(xlUp))
For Each myCell In targetRange.Cells
If checkUrlLink(myCell.Hyperlinks.Item(1).Address) = True Then
myCell.Offset(0, 1).Value = True
Else
myCell.Offset(0, 1).Value = False
End If
Next myCell
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Private Function checkUrlLink(myURL As String) As Boolean
Dim req
Set req = CreateObject("Microsoft.XMLHTTP")
req.Open "GET", myURL, False
req.Send
If Not (req.Status >= 200 And req.Status < 300) Then
checkUrlLink = False
Else
checkUrlLink = True
End If
End Function
ご回答いただき、ありがとうございます。
返事が遅くなり、申し訳ありませんでした。
さっそく、mitarashiさんのマクロを使わせていただきました。
まさしくこのようなマクロを求めていました(笑)
しかし、いくつか問題がありました。
リンク先が確実にあるものに関しては、問題がなかったのですが、
マクロ実行中に、このようなメッセージが出てマクロが止まってしまう事が
あります。なぜでしょうか?
○ オートメーションエラー
○ 書き込みができません
mitarashiさんのマクロが原因ではない(私のデータだと・・・)と思いますが、
これはどのようにしたらよいのでしょうか?
ちなみに、このメッセージが出るURLに関しては、true、falseは入力されず、
空白のままになって、マクロが停止します。
初歩的な質問かもしれませんが、ご助言頂けないでしょうか?
よろしくお願いします。
No.2
- 回答日時:
#1です。
Microsoft.XMLHTTPを用いる例をみつけました。
HTTPサーバからクライアントに向けた応答コードで判別しているので、こちらの方がスマートですね。
http://www.excel.studio-kazu.jp/kw/2010072916151 …
なお、HTTPサーバの戻すコードの解説は下記にあります。
req.Status >= 200 And req.Status < 300 の意味が理解できます。
http://www.h2.dion.ne.jp/~micased/http.html
No.1
- 回答日時:
IE6なら下記のNo.2のコードが使えると思いますが、IEのバージョンが新しいとひとひねりが必要らしいです。
当方インストールするつもりはないので、検証できません。あしからず。文中のリンク先(長いので探し出すのに苦労しますが)ではWebbrowserを用いる例が載っていますが、試してみておりません。ご参考まで。
http://okwave.jp/qa/q4082853.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 画像のようなチェックボックスとハイパーリンクがありますが、 ハイパーリンクを押すと、チェックボックス 1 2023/04/07 12:56
- Excel(エクセル) ハイパーリンクの削除について 2 2022/11/10 07:32
- フリーソフト 画像貼り付け、URLに飛べる軽いメモ帳 3 2022/05/12 07:42
- Excel(エクセル) ハイパーリンクでネットにつながらないのは? 2 2022/08/07 18:35
- Excel(エクセル) エクセル会員名簿について。 Yahooメールの連絡先で、AさんCさんにチェックをつけて別のグループに 2 2023/03/27 20:33
- 会計ソフト・業務用ソフト 共有しているエクセルのファイルが100MB超えをしました。全く画像など貼ったりしていません。 しかし 4 2023/02/06 14:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Visual Basic(VBA) VBAでWEBサーバー上に保存されたPDFファイルのリンク有効チェックについて 1 2022/11/11 16:04
- Excel(エクセル) エクセルのハイパーリンクで別BOOKを開く 3 2022/10/26 18:48
- Excel(エクセル) エクセルの図形にハイパーリンクとマクロ登録について教えてください 1 2022/06/11 11:29
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
Excel VBAでリンク切れをチェックしたい。
Excel(エクセル)
-
URLのリンク切れをマクロを使って表示する方法を教えてください。
その他(プログラミング・Web制作)
-
リンク切れチェックを行うマクロ
Excel(エクセル)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
エクセルエラー13型が一致しま...
-
ExcelVBA Range クラスの Page...
-
VBAでのエラー
-
【Excel VBA】マクロをボタンに...
-
EXCEL VBAマクロ中断でデバッグ...
-
AccessVBAでExcelを起動し、罫...
-
マクロについて教えてください...
-
「アプリケーション定義または...
-
EXCEL/VBAで、自分のPCだけエラ...
-
なぜこんな初歩的なVBAのIf文で...
-
プロシージャ名の取得
-
OLEDB.NETで接続できない
-
エクセルVBA、フリーフォームで...
-
「定数式が必要です。」って何...
-
VB6+SQL サーバー 2000 で 実行...
-
Excelで下記のようにマクロを作...
-
DataGridView からの値取得に関...
-
なぜエラーになるのでしょうか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
VBS実行時エラー オブジェクト...
-
【Excel VBA】マクロをボタンに...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
VBSで変数の宣言はできないので...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
EXCEL VBAマクロ中断でデバッグ...
-
なぜエラーになるのでしょうか...
-
ADODB.Streamを使用してUTF-8を...
-
VBAのコードがエラーになっ...
-
Outlook.ApplicationをCreateOb...
-
VB6+SQL サーバー 2000 で 実行...
-
ExcelVBAで、ユーザー定義型は...
-
実行時エラー48発生時のDLL特定...
おすすめ情報