プロが教える店舗&オフィスのセキュリティ対策術

VBAでハイパーリンク確認して開けるか開けないかのチェックを掛けたいです。
対象はWEB上のPDFファイルです。問題となっているのがページ指定したときです。
下のサンプルでは1ページ目を開きたいため"#page=1"を含めているのですが、ステータス番号404が返ってきてしまいます。Web検索で直接入力すれば開けることが確認できます。
ページ番号を除けばVBA上でステータス番号200が返ってきて問題なく開けることが分かるのですが、ページ指定していてもリンクが切れていないことが分かるように修正したいです。
何か回避策はありますでしょうか。

Sub sample()
Dim req
Dim MyUrl As String

Set req = CreateObject("Microsoft.XMLHTTP")
MyUrl = "http://www.hikawa.kai.ed.jp/wp-content/uploads/2 …

req.Open "GET", MyUrl, False
req.Send
Debug.Print req.Status

End Sub

質問者からの補足コメント

  • #切れば問題なさそうでした。失礼しました。instr
    で対応致します。

      補足日時:2022/11/11 17:04

A 回答 (1件)

こんにちは



目的は
>開けるか開けないかのチェックを掛けたいです
と考えても良いのでしょうか?

>ページ番号を除けばVBA上でステータス番号200が返ってきて~
であるなら、はなからそちらでチェックなされば宜しいのではないでしょうか?

うろ覚えなので曖昧で申し訳ありませんが、PDF化ソフトによってはページ番号呼び出しに対応していないものもあったかと・・
(勿論、純正のソフトなら対応していますけれど。)

調べたいURLから、正規表現あるいは InStr 関数を使って「#」以降を削除しておけば良いのではないでしょうか?
    • good
    • 0
この回答へのお礼

失礼しました。
確かにそれはそうなんですが、目的はそのページに飛べるか飛べないかの確認がしたいです。
ページが存在してなくて404なら分かるのですが、ページがあるのに404なのは回避したいという感じです。

お礼日時:2022/11/11 16:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!