Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
QueryTables.AddでのWEBページ取得について
投稿日時: 19/05/04 19:37:59
投稿者: andoandoando

いつもお世話になっております。
 
ヤフオクのページからのデータ取得をしたく、QueryTables.Addを用いて作成中です。
 
URLを入力→QueryTables.Add マクロ→必要データ取得マクロ→(次のURLを入力)
を手動で行う分には特に問題は起きないのですが
上記をマクロで連続で行おうとすると固まってしまいます。
 
固まるのは2回ほどデータ取得が終わり、3回目のURLを入力しQueryTables.Add でのWEBページ取得のところで取得できずに「応答なし」になってしまいます。
 
URLはいくつもあるのですが連続マクロで最初から行っても2URLは終わり3URL目で固まる、
3URL目からスタートさせても4までは終わるのですが5URLの取得のところで固まってしまいます。
 
個別のマクロを手動で動かす分には問題ないので、自動化の問題だとは思うのですが何か心当たりなどございましたらお教えいただけますと幸いです。
以上よろしくお願いいたします。
 
 
↓ WEBページ取得用
 
Sub 調査用更新()
 
'On Error Resume Next
 
         Worksheets("調査用").Activate
     Worksheets("調査用").Range(Cells(4, 1), Cells(5000, 7)).Delete
      
      
    Worksheets("調査用").Range("a1").Select
 
    URLad = Worksheets("調査用").Range("A1").Value
    With Worksheets("調査用").QueryTables.Add(Connection:= _
        "URL;" & URLad _
        , Destination:=Range("$A$4"))
       .Name = "s?me=A4LG1QVXA6W8A&merchant=A4LG1QVXA6W8A&qid=1543156519"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
            '.RefreshStyle = xlInsertDeleteCells
        .RefreshStyle = xlOverwriteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = False
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
      '.WebFormatting = xlWebFormattingAll
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
       ' .Parent.Names(.Name).Delete
        .Delete
    End With
 
 
 
' 'コネクションを切ることで .Refresh BackgroundQuery:=False でのエラー回避
      Do While ActiveWorkbook.Connections.Count > 0
                ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete
      Loop
       
       
         
End Sub
 

回答
投稿日時: 19/05/04 20:48:36
投稿者: simple

当事者ではないので、正確なことは言えませんが、
サーバー側でこうした自動取得に制限を掛けている可能性が高いと思います。

投稿日時: 19/05/06 13:11:10
投稿者: andoandoando

simple 様
 
ご回答ありがとうございます。
amazonでは文字コード?入れるようになったことがあります。
それと似たことがおきているのでしょうかね?!
とりあえず、クエリでうまく行かないのでその他の方法を試します。
ありがとうございました。