Excel VBA質問箱 IV

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

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


7911 / 13644 ツリー ←次へ | 前へ→

【36113】アクティブなHPのデータをEXCELに取り込むには? 超初心者 06/3/21(火) 16:31 質問[未読]
【36114】Re:アクティブなHPのデータをEXCELに取り込... かみちゃん 06/3/21(火) 16:47 発言[未読]
【36115】Re:アクティブなHPのデータをEXCELに取り込... 超初心者 06/3/21(火) 17:30 お礼[未読]
【36118】Re:アクティブなHPのデータをEXCELに取り込... 超初心者 06/3/21(火) 18:16 質問[未読]
【36121】Re:アクティブなHPのデータをEXCELに取り込... かみちゃん 06/3/21(火) 18:33 発言[未読]
【36129】Re:アクティブなHPのデータをEXCELに取り込... かみちゃん 06/3/21(火) 20:20 発言[未読]

【36113】アクティブなHPのデータをEXCELに取り込...
質問  超初心者 E-MAIL  - 06/3/21(火) 16:31 -

引用なし
パスワード
   競馬の資金配分ソフトをエクセルで作成したのですが、
現在オッズを参照し自分で入力していますが、自動化のため
競馬のI-PATの情報をエクセルに取り込みたいと思っています。
I-PATで情報を見る場合、
http://www.ipat.jra.go.jp/
からURLの不明なウィンドウがオープンされるためWebクエリが活用できません。
このような、URL不明なHPからデータをエクセルに取り込むには
どのようにしたら良いのでしょうか?

http://www.jra.go.jp/
から競走成績が見られますが基本的にはこれと同じです。
これのレース前情報ということになりますが、欲しいのは
馬番・馬名・単勝オッズのみです。
これを18頭としてエクセルに3列×18行で取り込みたい訳です。

超初心者のため、どこから手をつけたらいいかすらわかりません。

どうぞよろしくお願いします。

【36114】Re:アクティブなHPのデータをEXCELに取り...
発言  かみちゃん E-MAIL  - 06/3/21(火) 16:47 -

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

>競馬の資金配分ソフトをエクセルで作成したのですが、
>現在オッズを参照し自分で入力していますが、自動化のため
>競馬のI-PATの情報をエクセルに取り込みたいと思っています。
>I-PATで情報を見る場合、
>http://www.ipat.jra.go.jp/
>からURLの不明なウィンドウがオープンされるためWebクエリが活用できません。
>このような、URL不明なHPからデータをエクセルに取り込むには
>どのようにしたら良いのでしょうか?
>
>http://www.jra.go.jp/
>から競走成績が見られますが基本的にはこれと同じです。
>これのレース前情報ということになりますが、欲しいのは
>馬番・馬名・単勝オッズのみです。
>これを18頭としてエクセルに3列×18行で取り込みたい訳です。

昔、知人の依頼で同様の取り込みプログラムを作ったことがあります。
ただ、そのプログラムがどこにしまったか、ちょっとわからないので、すぐに
提示することはできないですし、ご提示いただいたI-PATのページは、提供時間
があるようで、さきほどの時間に確認することはできませんでした。

ただ、Yahoo!競馬でも同様の情報が取れそうなのですが、「オッズなどのデータ
は、必ず主催者発行のものと照合し確認してください」と注意書きがあるくらい
なので、使えないのでしょうか?
http://keiba.yahoo.co.jp/schedule/2006/03/index.html
この情報だと、Webクエリでできそうですけどね。

なお、InternetExplorer(IE)との連携の方法については、
http://www.ken3.org/cgi-bin/group/vba_ie.asp
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsVbaXMLHTTP.html
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsMSHTML.html
が参考になるかと思います。
私もここを参考に作成したことがあります。

【36115】Re:アクティブなHPのデータをEXCELに取り...
お礼  超初心者 E-MAIL  - 06/3/21(火) 17:30 -

引用なし
パスワード
   回答ありがとうございます。
Yahoo!競馬というものがあるとは知りませんでした。
たしかにURLが個別なのでWEBクエリ使えそうです。
まずは自分で挑戦してみますが、超初心者レベルですので確実につまづくと思われます。
その際は、またアドバイスお願いします。


▼かみちゃん さん:
>昔、知人の依頼で同様の取り込みプログラムを作ったことがあります。
>ただ、そのプログラムがどこにしまったか、ちょっとわからないので、すぐに
>提示することはできないですし、ご提示いただいたI-PATのページは、提供時間
>があるようで、さきほどの時間に確認することはできませんでした。
>
>ただ、Yahoo!競馬でも同様の情報が取れそうなのですが、「オッズなどのデータ
>は、必ず主催者発行のものと照合し確認してください」と注意書きがあるくらい
>なので、使えないのでしょうか?
>http://keiba.yahoo.co.jp/schedule/2006/03/index.html
>この情報だと、Webクエリでできそうですけどね。
>
>なお、InternetExplorer(IE)との連携の方法については、
>http://www.ken3.org/cgi-bin/group/vba_ie.asp
>http://www.f3.dion.ne.jp/~element/msaccess/AcTipsVbaXMLHTTP.html
>http://www.f3.dion.ne.jp/~element/msaccess/AcTipsMSHTML.html
>が参考になるかと思います。
>私もここを参考に作成したことがあります。

【36118】Re:アクティブなHPのデータをEXCELに取り...
質問  超初心者 E-MAIL  - 06/3/21(火) 18:16 -

引用なし
パスワード
   Yahoo!競馬ですが、当日のリアルタイムオッズを見るには別途料金が必要みたいです。
Webクエリで取込みマクロは作成はできたのですが・・・・残念です。

I-PAT経由では難しいかと思いますが
おっず道楽というソフトがあり、オッズを無料でダウンロードすることができます。
出馬表は
http://www.joy.hi-ho.ne.jp/taku-w/uma.txt
欲しいのはUma=** とName=******
オッズは
http://www.joy.hi-ho.ne.jp/taku-w/odd.txt
欲しいのは単勝のみで6桁区切り、上記の場合33.9 15.6 5.1 となります。

いずれもこのような定型のテキスト形式となっています。

ファイルは以下のような名称でフォルダも自動的に作成されます。
C:\Program Files\OddsRaku\Odds\2006\03月18日\中山01R出馬表.RF
C:\Program Files\OddsRaku\Odds\2006\03月18日\中山01Rオッズ.ODD
C:\Program Files\OddsRaku\Odds\2006\03月18日\中山02R出馬表.RF
C:\Program Files\OddsRaku\Odds\2006\03月18日\中山02Rオッズ.ODD
・・・・省略・・・・・・・・・・・・・・・・・・・・・・・・
C:\Program Files\OddsRaku\Odds\2006\03月18日\中山12R出馬表.RF
C:\Program Files\OddsRaku\Odds\2006\03月18日\中山12Rオッズ.ODD

ここで、例えば今日が3月18日だとして
1.オッズ道楽を起動するマクロ
 これはshell関数でできそうな気がします。
2.おっず道楽でデータをダウンロード後 
 レースNoを選択するフォームを作成して1Rを選択すると3月18日の1Rデータ
 C:\Program Files\OddsRaku\Odds\2006\03月18日\中山01R出馬表.RF
 C:\Program Files\OddsRaku\Odds\2006\03月18日\中山01Rオッズ.ODD
 から馬番・馬名・オッズをエクセルに取りこむ。

このようなマクロは作成できないでしょうか?

いろいろVBAの本も買って勉強しているのですが
敷居が高くて途方に暮れています。よろしくお願いします。

【36121】Re:アクティブなHPのデータをEXCELに取り...
発言  かみちゃん E-MAIL  - 06/3/21(火) 18:33 -

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

> レースNoを選択するフォームを作成して1Rを選択すると3月18日の1Rデータ
> C:\Program Files\OddsRaku\Odds\2006\03月18日\中山01R出馬表.RF
> C:\Program Files\OddsRaku\Odds\2006\03月18日\中山01Rオッズ.ODD
> から馬番・馬名・オッズをエクセルに取りこむ。
>
>このようなマクロは作成できないでしょうか?

一番手っ取り早いのは、Excelに取り込んで必要なセルの情報だけを取得してくればいいかと思います。
サンプルデータは、拝見しましたが、どういうふうにまとめたいのかわかりませ
んので、今はこの程度のアトバイスしかできません。

【36129】Re:アクティブなHPのデータをEXCELに取り...
発言  かみちゃん E-MAIL  - 06/3/21(火) 20:20 -

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

>2.おっず道楽でデータをダウンロード後 
> レースNoを選択するフォームを作成して1Rを選択すると3月18日の1Rデータ
> C:\Program Files\OddsRaku\Odds\2006\03月18日\中山01R出馬表.RF
> C:\Program Files\OddsRaku\Odds\2006\03月18日\中山01Rオッズ.ODD
> から馬番・馬名・オッズをエクセルに取りこむ。
>
>このようなマクロは作成できないでしょうか?

C:\Program Files\OddsRaku\Odds\2006\03月18日\中山01R出馬表.RF
をExcelに読み込んだあとであれば、とりあえず、以下のような感じのマクロで
同一シートのE列にデータを取得できます。

Sub Macro1()
 Dim LastCell As Range
 Dim c As Range
 Dim RngStart As Range
 Dim Uma() As Variant
 Dim i As Integer
 
 i = 0
 Set LastCell = Range("A65536").End(xlUp)
 
 With Range("A1", LastCell)
  Set RngStart = .Find("[HorseInfo]", LookIn:=xlValues, LookAt:=xlWhole)
  If Not RngStart Is Nothing Then
   For Each c In Range(RngStart, LastCell)
    If InStr(c.Value, "Uma=") = 1 Then
     i = i + 1
    End If
   Next
  End If
 End With
 
 ReDim Uma(i, 2)
 
 i = 0
 For Each c In Range(RngStart, LastCell)
  If InStr(c.Value, "Uma=") = 1 Then
   i = i + 1
   Uma(i, 0) = Replace(c.Value, "Uma=", "")
   Uma(i, 1) = Replace(c.Offset(2).Value, "Name=", "")
  End If
 Next
 
 Range("E1").Resize(16, 2).Value = Uma
End Sub

もっとスマートな方法があるかもしれませんが・・・

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