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

下記のマクロでは、A列にあるURLのソースに、
指定した語句が含まれているか調べるものです。

このマクロを動かしていると、頻繁に、
実行時エラー3001「引数が間違った型、許容範囲外、または競合しています。」
というポップが出てきます。

そのため、思うようにマクロ作業が進みません。

このエラーが出る原因は何があるでしょうか?
エラーが出ないようにするためには、どのように記述した方がいいでしょうか?


それか、このエラーのポップを避けて、
その次のURLから動かしていくという風にできたりしますでしょうか?

よろしくお願いいたします。


Sub main()
'!!!! [Microsoft XML v6.0] に参照設定
Dim xHttp As IServerXMLHTTPRequest
Dim myErr_Number As Long, myErr_Description As String
Set xHttp = CreateObject("MSXML2.ServerXMLHTTP")
Dim aCell As Range
R = 1
For Each aCell In Selection.Columns(1).Cells
Application.Goto aCell
DoEvents
sUrl = aCell.Value
If sUrl <> "" Then
xHttp.Open "GET", sUrl, True
xHttp.setOption SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS, _
SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS
On Error Resume Next
xHttp.send
If xHttp.readyState <> 4 Then
xHttp.waitForResponse 5
End If
If xHttp.readyState <> 4 Then Err.Raise 1004, ,
myErr_Number = Err.Number
myErr_Description = Err.Description
On Error GoTo 0
If myErr_Number = 0 Then
sHtml = xHttp.responseText
nRtn = InStr(sHtml, "A")
If nRtn = 0 Then
aCell.Offset(, 1).Value = "--"
Else
aCell.Offset(, 1).Value = "○"
End If
Else
aCell.Offset(, 1).Value = myErr_Description

DoEvents
End If
Next
Set xHttp = Nothing
End Sub

A 回答 (2件)

・ご提示のプログラムは 少なくとも End If が一つ足りないので動作しません。


 エラーが発生する正確なプログラムをコピペしてください。

・実行時エラーのときデバッグボタンをクリックすると、プログラムのどの行を指し示しますか?

・特定のURLでエラーが発生する等はありますか?

・ご利用のOSおよびExcelのバージョンを提示してください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

コピペするマクロを間違えていました。すみません。
コメントでは、文字数エラーになるため、


改めて質問しました。
https://oshiete.goo.ne.jp/qa/11208027.html


> ・実行時エラーのときデバッグボタンをクリックすると、プログラムのどの行を指し示しますか?
in_strm.Charset = sCharset
の部分が黄色マーカーになっています。


> ・特定のURLでエラーが発生する等はありますか?

エラーが出たURLの一部は、これらです。
https://www.apo-job.jp/
https://www.aniel.jp/
https://www.amo-co.jp/


> ・ご利用のOSおよびExcelのバージョンを提示してください。
Excel2016です。

お礼日時:2019/07/14 12:47

>実行時エラー3001「引数が間違った型、許容範囲外、または競合しています」



間違った型の引数または許容範囲外の引数を使用しているか、ほかの引数と競合しています。このエラーは、SQL SELECT ステートメント中のタイプミスが原因でよく発生します。SELECT ステートメントに指定されたフィールドまたはテーブルがデータ ストアに存在しない場合も発生することがあります。
例:フィールド名やテーブル名のスペルミスでこのエラーが発生。
https://answers.microsoft.com/ja-jp/msoffice/for …
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A