• ベストアンサー

エクセルで土日の出走馬から自分の注目している馬の確認方法(2)

http://oshiete1.goo.ne.jp/qa2454134.html 以前↑ここでこういう質問をしたのですが、NO.4の回答で教えてもらったマクロでエクセルを実行したら去年までは出馬表の馬名を取り込んでいけたのですが、出馬表の馬名が取得できませんでした。 馬名はもう出ているのに、取り込んでいけませんでした。 どうすれば取り込んでいけるようになりますでしょうか? マクロのどこか1部分を訂正すればできるようになるのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.11

最終修正 ----------- Sub レース取得() Application.ScreenUpdating = False 'マクロ実行非表示 ' '作業用シート作成 ' 保存 = ActiveSheet.Name ActiveSheet.Name = "data" Sheets.Add After:=ActiveSheet ActiveSheet.Name = "sagyou" URR = "URL;http://www.netkeiba.com" ' ' レース情報取得 Macro ' Sheets("sagyou").Select 表番号 = 15 Do Columns("B:B").Select Selection.Delete Shift:=xlToLeft With ActiveSheet.QueryTables.Add(Connection:=URR, Destination:=Range("b1")) .WebFormatting = xlWebFormattingNone .WebTables = 表番号 .Refresh BackgroundQuery:=False End With 表番号 = 表番号 + 1 If Range("B1").Value = "中央競馬" Then Exit Do Loop Columns("B:B").Select Selection.Delete Shift:=xlToLeft With ActiveSheet.QueryTables.Add(Connection:=URR, Destination:=Range("b1")) .WebTables = 表番号 .Refresh BackgroundQuery:=False End With Range("B1:" & Range("b1").End(xlToRight).Address).Select Selection.Copy Range("A1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True Columns("B:F").Select Selection.Delete Shift:=xlToLeft Range("a1").Activate Do ActiveCell.Offset(0, 1).Value = ActiveCell.Hyperlinks(1).Address ActiveCell.Offset(1, 0).Activate Loop Until ActiveCell.Value = "" ActiveCell.Offset(1, 0).Offset(-1, 0).Value = "END" ActiveCell.Offset(1, 0).Offset(-1, 1).Value = "END" ' ' レース取得 Macro ' 開催 = "B1" Do Do Until Right(Range("C1").Value, 2) = "日目" 表番号 = 表番号 + 1 Columns("C:L").Select Selection.Delete Shift:=xlToLeft With ActiveSheet.QueryTables.Add(Connection:="URL;" & Range(開催).Value, Destination:=Range("c1")) .WebTables = 表番号 .Refresh BackgroundQuery:=False End With Loop 表番号 = 表番号 + 1 Do Columns("C:P").Select Selection.Delete Shift:=xlToLeft With ActiveSheet.QueryTables.Add(Connection:="URL;" & Range(開催).Value, Destination:=Range("c1")) .WebTables = 表番号 .Refresh BackgroundQuery:=False End With If Left(Range("C1").Value, 1) = " " Then Else セルNo = 2 Range("a65535").End(xlUp).Select Do ActiveCell.Offset(1, 0).Select ActiveCell.Value = Range("C1").Value ActiveCell.Offset(1, 0).Select ActiveCell.Value = Range("C" & セルNo).Value セルNo = セルNo + 2 Loop Until Range("C" & セルNo).Value = "" End If Range("D2:" & Range("D65535").End(xlUp).Address).Select Selection.Copy Range("B65535").End(xlUp).Offset(1, 0).Select ActiveSheet.Paste 表番号 = 表番号 + 1 Loop Until Left(Range("C1").Value, 1) = " " 開催 = Range(開催).Offset(1, 0).Address Columns("C:P").Select Selection.Delete Shift:=xlToLeft 表番号 = 20 Loop Until Range(開催).Value = "END" Range("B65535").End(xlUp).Offset(1, 0).Value = "END" ' 'アドレス取得 ' Range("B1").Select Do ActiveCell.Offset(1, 0).Select Loop Until ActiveCell = "END" ActiveCell.Offset(1, 0).Select Do ActiveCell.Offset(0, 1).Value = ActiveCell.Hyperlinks(1).Address ActiveCell.Offset(2, 0).Activate Loop Until ActiveCell.Value = "END" ActiveCell.Offset(0, 1).Value = "END" ' '出馬表取得 ' レースNo = Range(開催).Address レースNo = Range(レースNo).Offset(1, 1).Address Do 表No = 25 Do Until Range("D1").Value = "馬名" Or Range("D1").Value = "枠" Or Range("D1") = "着" Or Range("D1").Value = " お気に入り馬出走情報" 表No = 表No + 1 Sheets("sagyou").Select Columns("D:O").Select Selection.Delete Shift:=xlToLeft With ActiveSheet.QueryTables.Add(Connection:= _ "URL;" & Range(レースNo).Value, Destination:=Range _ ("D1")) .WebFormatting = xlWebFormattingNone .WebTables = 表No .Refresh BackgroundQuery:=False End With If Range("E1").Value = "競馬新聞を見る" Then レース名 = 表No End If Loop Columns("D:O").Select Selection.Delete Shift:=xlToLeft With ActiveSheet.QueryTables.Add(Connection:= _ "URL;" & Range(レースNo).Value, Destination:=Range _ ("D1")) .WebFormatting = xlWebFormattingNone .WebTables = レース名 & "," & 表No .Refresh BackgroundQuery:=False End With ' 'レースデータ移動 ' Range("D1:" & Range("D1").End(xlDown).Address).Select Selection.Copy Sheets("data").Select Range("A65535").End(xlUp).Offset(2, 0).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Sheets("sagyou").Select Range("D1").End(xlDown).Offset(2, 0).Select If ActiveCell.Value <> " お気に入り馬出走情報" Then Do Until ActiveCell.Value = "馬名" ActiveCell.Offset(0, 1).Select Loop 左上 = ActiveCell.Address Do Until ActiveCell.Value = "厩舎" ActiveCell.Offset(0, 1).Select Loop 右下 = Range(Left(ActiveCell.Address, 2) & "65535").End(xlUp).Address Range(左上, 右下).Select Selection.Copy Sheets("data").Select Range("A65535").End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Else Sheets("data").Select Range("A65535").End(xlUp).Offset(1, 0).Value = "取得できませんでした" End If Sheets("sagyou").Select レースNo = Range(レースNo).Offset(2, 0).Address Loop Until Range(レースNo) = "END" ' '作業シート削除 ' Sheets("data").Select Sheets("data").Name = 保存 Sheets("sagyou").Delete Columns("A:E").Select Range("A1363").Activate Columns("A:E").EntireColumn.AutoFit End Sub -----------

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (11)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

長くなりましたが、 ----------ここから--------- Sub レース取得() Application.ScreenUpdating = False 保存 = ActiveSheet.Name ActiveSheet.Name = "data" Sheets.Add After:=ActiveSheet ActiveSheet.Name = "sagyou" ' ' レース情報取得 Macro ' Sheets("sagyou").Select With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.netkeiba.com", Destination:=Range("b1")) .WebTables = "17" .Refresh BackgroundQuery:=False End With Rows("2:5").Select Selection.Delete Shift:=xlUp Range("B1").Select Selection.Copy Range("A1").Select ActiveSheet.Paste Range("C1").Select Selection.Copy Range("A2").Select ActiveSheet.Paste Range("D1").Select Selection.Copy Range("A3").Select ActiveSheet.Paste Columns("B:D").Select Selection.Delete Shift:=xlToLeft Range("a1").Activate Do ActiveCell.Offset(0, 1).Value = ActiveCell.Hyperlinks(1).Address ActiveCell.Offset(1, 0).Activate Loop Until ActiveCell.Value = "" ActiveCell.Offset(1, 0).Offset(-1, 0).Value = "END" ActiveCell.Offset(1, 0).Offset(-1, 1).Value = "END" ' ' レース取得 Macro ' 開催 = "B1" Do Until Range(開催).Value = "END" テーブルNo = 29 Do Columns("C:E").Select Selection.Delete Shift:=xlToLeft With ActiveSheet.QueryTables.Add(Connection:="URL;" & Range(開催).Value, Destination:=Range("c1")) .WebTables = テーブルNo .Refresh BackgroundQuery:=False End With If Left(Range("C1").Value, 1) = " " Then Else セルNo = 2 Range("a65535").End(xlUp).Select Do ActiveCell.Offset(1, 0).Select ActiveCell.Value = Range("C1").Value ActiveCell.Offset(1, 0).Select ActiveCell.Value = Range("C" & セルNo).Value セルNo = セルNo + 2 Loop Until Range("C" & セルNo).Value = "" End If Range("D2:" & Range("D65535").End(xlUp).Address).Select Selection.Copy Range("B65535").End(xlUp).Offset(1, 0).Select ActiveSheet.Paste テーブルNo = テーブルNo + 1 Loop Until Left(Range("C1").Value, 1) = " " 開催 = Range(開催).Offset(1, 0).Address Loop Columns("C:C").Select Selection.Delete Shift:=xlToLeft Range("B5").Activate Do ActiveCell.Offset(0, 1).Value = ActiveCell.Hyperlinks(1).Address ActiveCell.Offset(2, 0).Activate If ActiveCell.Value = "" Then ActiveCell.Offset(1, 0).Activate If ActiveCell.Value = "END" Then Exit Do End If End If Loop Until ActiveCell.Value = "" ' レースデータ取得 レースNo = Range(開催).Offset(1, 1).Address Do Sheets("sagyou").Select Columns("D:M").Select Selection.Delete Shift:=xlToLeft With ActiveSheet.QueryTables.Add(Connection:= _ "URL;" & Range(レースNo).Value, Destination:=Range _ ("D1")) .WebFormatting = xlWebFormattingNone .WebTables = "35" .Refresh BackgroundQuery:=False End With 'レースデータ移動 Range(レースNo).Offset(0, -2).Select Range(ActiveCell.Address, ActiveCell.Offset(1, 1).Address).Select Selection.Copy Sheets("data").Select Range("A65535").End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Sheets("sagyou").Select Range("D1").Select Do Until ActiveCell.Value = "馬名" ActiveCell.Offset(0, 1).Select Loop 左上 = ActiveCell.Address Do Until ActiveCell.Value = "厩舎" ActiveCell.Offset(0, 1).Select Loop 右下 = Range(Left(ActiveCell.Address, 2) & "65535").End(xlUp).Address Range(左上, 右下).Select Selection.Copy Sheets("data").Select Range("A65535").End(xlUp).Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False レースNo = Range(レースNo).Offset(2, 0).Address Sheets("sagyou").Select If Range(レースNo).Value = "" And Range(レースNo).Offset(2, 0) = "" And Range(レースNo).Offset(4, 0) = "" Then Exit Do End If Loop Sheets("data").Select Sheets("data").Name = 保存 Sheets("sagyou").Delete Columns("A:E").Select Range("A1363").Activate Columns("A:E").EntireColumn.AutoFit Application.ScreenUpdating = True End Sub ----------ここまで--------- このマクロでレース情報を自動で取得できるはずです。 全自動なので終了まで、1~2分ほどかかります。 最後に作業用のシートを削除する警告が出ますが、【削除】をクリックしてください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで土日の出走馬から自分の注目している馬の確認方法

    これまでのJRAのホームページ右上に表示されていた、出走馬名表で木曜日の16:00頃に土、日の全出走馬が1つのページで1日1場の全レースの出走馬名が表示されていましたが、ホームページのリニューアルでそれがなくなってしまいました。 そのページをctrl+aで全選択してエクセルファイルにコピーして(3場開催の場合この作業×6回)、ハイパーリンクで自分の注目している馬が出ているかであぶりだしていました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1431816 ここで教えてもらいました。 リニューアルされて1ページに1レースと細かくなったのでこの作業ができなくなってしまいました。(やろうと思えばできますが、1レースに1つのページになってしまったので6回の作業が×12で72回の作業になってしまいます) どうすればこのような作業ができるようになりますでしょうか?出走しているか確認したい馬が200頭程いるので1頭ずつ確認はとてもできません。 http://race.netkeiba.com/?id=c1007 例えば↑のページで各レースの2歳未勝利とかをクリックするとリンク先にそのレースの出走馬の名前が全頭出たページに行くのですが、リンク先ページをまとめてババーッとひとつのエクセルに貼り付けたりできたら1レースずつ選択貼り付け、選択貼り付けの作業をしなくてもいいのですが、そういうのは可能でしょうか? 有料のサービス以外で注目馬の出走確認をしたいのですが、できるだけ軽い作業でできる方法を教えてほしいです。よろしくお願いします。

  • 教えてもらったマクロが動作しません。解決方法をお願いします。

    http://oshiete1.goo.ne.jp/qa2643770.html ここで教えてもらったNO.11,12 マクロなのですが 馬名の下の ActiveCell.Offset(0, 1).Select という部分が黄色くなっているせいかエラーとなって中断されてしまいます。 正常に動作させるようにするにはどうしたらよいでしょうか? 回答よろしくお願いします。

  • 土日の出走馬から自分の注目している馬の確認方法

    これまでのJRAのホームページ右上に表示されていた、出走馬名表で木曜日の16:00頃に土、日の全出走馬が1つのページで1日1場の全レースの出走馬名が表示されていましたが、ホームページのリニューアルでそれがなくなってしまいました。 そのページをctrl+aで全選択してエクセルファイルにコピーして(3場開催の場合この作業×6回)、自分の注目している馬が出ているかハイパーリンクであぶりだしていました。 リニューアルされて1ページに1レースと細かくなったのでこの作業ができなくなってしまいました。(やろうと思えばできますが、1レースに1つのページになってしまったので6回の作業が×12で72回の作業になってしまいます) どうすればこのような作業ができるようになりますでしょうか?出走しているか確認したい馬が200頭程いるので1頭ずつ確認はとてもできません。 有料のサービス以外で注目馬の出走確認をしたいのですが、できるだけ軽い作業でできる方法を教えてもらえないでしょうか?よろしくお願いします。

  • [ No.964924 質問:EXCELで同じ内容の行を削除 ]について詳しく教えてください。

    エクセルで同じ内容のセルのある行を自動的に削除したく、No.964924の回答No.2を実行したいのですが、マクロがまったくわかりません。このマクロはどのように記録、実行するのでしょうか。 勉強不足で申し訳ありません。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=964924

  • Windowsのタスク機能からExcelを開きマクロを実行しようと思っても、Excelがアクティブにならず、マクロが実行されない。

    仕事で、指定の時間にExcelで作ったマクロを実行し、帳票を作らなくてはなりません。 PCの前にいない時間に、自動的に実行される必要があります。 マクロはExcelを開くと同時に実行されるよう、「Auto_Open」を使いました。 あとは自動にこのExcelが開けばいいので、こちらで検索したところ、タスク機能を使うとExcelを指定の時間に開くことができると知り、試してみました。 http://oshiete1.goo.ne.jp/qa4146028.html しかし、Excelは開くのですが、アクティブの状態にはならず、マクロが実行されません。 タスク機能ではExcelを開いてマクロを実行することはできないのでしょうか? タスク機能は、ウィザードに従って設定してます。プロパティからは特に設定していません。 どなたか教えてください。 宜しくお願いします。

  • Excelの「塗りつぶしの色」の取得方法

    Excel 2010 にて 添付画像の赤枠で囲まれた部分の色をマクロ(VBA)で取得する方法はあるでしょうか? なぜか添付画像がうまく表示できないようなので、わかりづらいですが ホームリボン⇒フォント⇒塗りつぶしの色の部分です。 デフォルトままマクロを実行すると黄色(255,255,0)が取得でき、 これを赤に変更すると、赤(255,0,0)が取得できるようなイメージです。 この値を使って背景色の塗りつぶしを行うマクロを作りたいと思っています。

  • JRAの出馬表取得

    知人から出馬表(予想)管理?の様なCGIを作成して欲しいと頼まれました。 どうせ作るなら完成度が高い物を作りたいと思っているのですが、、、 CGIがJRAのホームページを自動解析し出馬表データ(馬番や馬名)を取得。 取得したデータに予想を記載し保存&htmlで公開。 の様な事をしても大丈夫なのでしょうか?

  • このマクロを実行し、表示させるにはどうしたらよいですか?

    初心者です。WinXP、Excel 2002を使用。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1432630 のページ の回答者No.2様のマクロを実行し、表示させるにはどうしたらよいですか? 私のやり方(解釈)が間違っているのだと思いますがこのままコピーし、実行してみましたが、エラーがでます。 1、コピー&ペーストから、もお少し、詳しく教えて  下さいませ。 2、Module1とModule2を個々のマクロで実行し、表示  する方法も併せて教えて下さいませ。

  • エクセルのマクロでワードのマクロに引数を渡す方法

    エクセルでワードのマクロを実行するのに下記のQAを参考にさせていただきました。 http://okwave.jp/qa647036.html あと、ワードのマクロに引数を渡してやりたいのですがやり方がわかりません。 結構いろんなサイトを回りましたがなかったので、質問させて頂きました。 宜しくお願いしますm(__)m

  • 注目している馬が出た日付、レース数、条件を表示させるには

    JRAのホームページの木曜日に出走馬名表というのが↓のように掲載されるのですが(2レース分だけコピーして貼り付けました。これが開催場所×12レース分あります。)そこから自分の注目している馬数十頭の内、出走する馬がいたら分かるように出る馬は http://oshiete1.goo.ne.jp/kotaeru.php3?q=1431816 ↑こちらの方法であぶりだせたのですがそのあぶりだせた中の馬が出るレースの日付→下の表で言えば 3月 18日、レース数→1、場所→中山、距離→1200m ダ、頭数→16頭 以上の項目をシート3のあぶりだされた出走する馬名の横に表示させるにはどうすればよいでしょうか? シート3のA1に馬名、B1に出る馬チェックの数式、C1に日付、D1に場所、F1にレース数、I1に頭数、Q1に距離というように、C,D,F,I、Qの5つをこの馬名の横の所定の位置に持ってきたいのです。中でもC,D,Qの3つは特に持ってきたいです。他の2つもできたら持ってきたいです。 2006年 第 2回 中山競馬 第 7日 ( 3月 18日) 1R  16頭 サラ系3歳(父)[指定] 3歳未勝利 1200m ダート・右  馬齢  発走 10:00 (父) エイコーロマン 牡 3 56 勝浦正樹 (父) エフテークリニック 牡 3 56 江田照男 (父) オオシマセイラー 牝 3 51 ▲ 的場勇人 (父) キングオブパンサー 牡 3 56 柴田善臣 (父) サイレンスラダメス 牡 3 56 後藤浩輝 2R  16頭 サラ系3歳牝[指定] 3歳未勝利 1800m ダート・右  馬齢  発走 10:30 (父) アッパレムスメ 牝 3 54 吉永護 アトマイザー 牝 3 54 伊藤直人 B (父) アプローズライト 牝 3 51 ▲ 黛弘人 シート1に↑のようなその週の出走馬名表があります。 10頭くらいその週に走る馬がいる場合でもまとめて一気にできるといいのですがこんなことは可能でしょうか?

専門家に質問してみよう