Excel VBA質問箱 IV

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

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


45596 / 76735 ←次へ | 前へ→

【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

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

0 hits

【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 発言

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