Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5642 / 13645 ツリー ←次へ | 前へ→

【49695】webページ取得において おやじvba若葉マーク 07/6/17(日) 10:49 質問[未読]
【49696】Re:webページ取得において かみちゃん 07/6/17(日) 10:51 発言[未読]
【49697】Re:webページ取得において かみちゃん 07/6/17(日) 12:54 回答[未読]
【49701】Re:webページ取得において おやじvba若葉マーク 07/6/17(日) 16:30 お礼[未読]

【49695】webページ取得において
質問  おやじvba若葉マーク E-MAIL  - 07/6/17(日) 10:49 -

引用なし
パスワード
   外部データ取り込みの新しいwebクエリを利用して競走馬のデータを取得したのですが、下記の .WebTables = "12,34"のところの34の位置が時々変わるようで情報が取得出来ない時があります。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2007/6/17 ユーザー名 : makoro
'

'

  Sheets.Add
  With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;****://db.netkeiba.com/horse/2004102132", Destination:=Range("A1"))
    .Name = "2004102132"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlOverwriteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlSpecifiedTables
    .WebFormatting = xlWebFormattingNone
    .WebTables = "12,34"
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
  End With
End Sub

取得したい情報は競走成績のろころなのですが競走馬によっては成績情報はあるのですが取得出来ない場合があります。競争成績の位置が変わっても取得する方法は無いのでしょうか。どなたか教えてください。よろしくお願いします。
情報の取得できる ****://db.netkeiba.com/horse/2004102132/
情報の取得出来ない ****://db.netkeiba.com/horse/2002110252/
****の部分はこのサイトの入力制限がかかっていますので****としました。

【49696】Re:webページ取得において
発言  かみちゃん E-MAIL  - 07/6/17(日) 10:51 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 取得したい情報は競走成績のろころなのですが競走馬によっては成績情報はある
> のですが取得出来ない場合があります。競争成績の位置が変わっても取得する方法

私も、知人からの依頼で競馬情報取得のプログラムを作ったことがありますが、
全体を取り込んで、必要でない部分を削除する、もしくは、必要な部分だけコピー
する方法ではいけないのでしょうか?

【49697】Re:webページ取得において
回答  かみちゃん E-MAIL  - 07/6/17(日) 12:54 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>> 取得したい情報は競走成績のろころなのですが競走馬によっては成績情報はある
>> のですが取得出来ない場合があります。競争成績の位置が変わっても取得する方法
>
>私も、知人からの依頼で競馬情報取得のプログラムを作ったことがありますが、
>全体を取り込んで、必要でない部分を削除する、もしくは、必要な部分だけコピー
>する方法ではいけないのでしょうか?

一応、以下のような感じで取得することはできると思います。

Sub Sample1()
 Dim strURL As String
 Dim FR As Range
 
 '****は、httpを半角にしてください。
 strURL = "****://db.netkeiba.com/horse/2004102132"
 
 With ActiveSheet.QueryTables.Add(Connection:= _
  "URL;" & strURL, Destination:=Range("A1"))
  '****は、httpを半角にしてください。
  .Name = Replace(strURL, "****://", "")
    .AdjustColumnWidth = False
    .WebSelectionType = xlEntirePage
    .WebFormatting = xlWebFormattingNone
    .Refresh BackgroundQuery:=False
 End With
 Set FR = Columns("A").Find("プロフィール*", , , xlWhole)
 If Not FR Is Nothing Then
  If FR.Row > 4 Then
   Range("A1", FR.Offset(-4)).EntireRow.Delete xlShiftUp
   Range("B1").Resize(, Columns.Count - 1).Delete xlShiftToLeft
  End If
 End If
 Set FR = Columns("A").Find("日付", , , xlWhole)
 If Not FR Is Nothing Then
  Range("A2", FR.Offset(-1)).EntireRow.Delete xlShiftUp
 End If
 Set FR = Columns("A").Find("競馬DBトップ", , , xlWhole)
 If Not FR Is Nothing Then
  Range(FR.Offset(-2), Cells(Rows.Count, "A").End(xlUp)).EntireRow.Delete xlShiftUp
 End If
  
 Columns("A").ColumnWidth = 10
 
 MsgBox "取得しました"
End Sub

【49701】Re:webページ取得において
お礼  おやじvba若葉マーク E-MAIL  - 07/6/17(日) 16:30 -

引用なし
パスワード
   ▼かみちゃん さん:
丁寧な回答ありがとうござす。
かみちゃんさんはプログラム関係の仕事をしているのですか?
すごいですね。
さっそく参考にさせて頂きたいと思います。

5642 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free