2024.06.07スポンサーリンク取得したオッズを見やすく表に整形します前回はjraのサイトからオッズをコピーしてワークシートにペーストするマクロを書いたわけですが、うまくできましたか。Subの下に続けて書いていきます。サンプルのシート名と同じにしたと仮定して〈InpOdds〉〈Calc〉シートを使います。5ヶ所変更)〈InpOdds〉シートにペーストした1レース分の枠連、馬連、馬単のオッズを〈Calc〉シートに整形して書き込みます。Nextステートメント」を使いますが、それはまたの機会にして、まずは1レース分のオッズを整形します。1ヶ所変更しましたので、それ以前に作られた方は修正をお願いします。Sub以下のように枠連のオッズが表として配置されます。オッズを回転複写(行列の入替え)しておくと枠ごとの取得率を集計する時にサクサクとできます。枠連オッズを表にして配置かいせつ枠連のオッズ表作成処理Setを使い、オブジェクト型で宣言した変数ws3、ws4にシート名を代入。共にモジュール変数として複数のプロシージャで共有できる変数で宣言ずみ(A)VBAからワークシート関数を呼び出すにはApplicationオブジェクトのWorksheetFunctionプロパティを使用します。出馬表の馬番の最大値を求めて出走頭数を求めますInpOdsシートの枠連オッズ複写元の、該当軸枠オッズ初行と最終行を算出Withはステートメントの一種です。同じオブジェクト名が何度も出てくるような場合はWithを使ってオブジェクト名を省略して書くことができます。Range」のように型指定をします。値」のようにSetを使います左辺と右辺のセル範囲の大きさを同じにすること、Valueも省略せずに書くことでセルの値(Value)はクリップボードを使わずにコピーされます1枠から8枠までのオッズを回転複写(行列の入替え)することにより、枠ごとの取得率を計算しやすくなります。21年11月3日、caRowT=26に変更しました21年11月3日、buf=28を追加しました21年11月3日、.Cells(caRowT+i,11)を.Cells(caRowT+i,buf)に変更(A)第3回出馬表とオッズの取得で、module1(名前を変更した場合はそのモジュール)のプロシージャ〈Sub出馬表の複写〉の上部で宣言しています。次は馬連のオッズを表に整形します。「馬連のマクロはここから書き始める」から以下のマクロを書きます。i馬単のマクロをここから書き始める馬連オッズを表にして配置かいせつコンピュータは繰り返しが大得意。そこで繰り返しの回数が決まっているので「For〜Next文」を使います。馬番1から最終馬番ひとつ手前までの回数を反復処理をします。条件によって処理を変えたい場合は「If文」を使います。ここでは馬番が10でない時の処理を実行します。馬番が10の時、馬番9のオッズブロックと馬番10のブロックとの間は1行(1セル)で他のブロック間の2行と比べ1行少ないので「inRowT=inRowE+1」になります。21年11月3日、caRowT=18をcaRowT=43に変更しました前記のマクロの「馬単のマクロをここから書き始める」以下に次のマクロを書きます。書き終えたら保存してさっそく実行しましょう。マクロの実行にはいくつかの方法があり、目的によって使い分けましょう。プログラミングにはバグ(エラーの発生)はつきもので、その原因を探り、一つひとつ解決していきます。バグが発生した時の対処法は必須です。オッズを順にコピーし、エクセルのワークシートにペーストするマクロです。券種ごとに作ったオッズテーブルを、単勝の人気順に並べ替えます。それにはまず縦方向(行)に、次いで横方向(列)に単勝人気順で並べ替えます。すると券種別のオッズテーブルが単勝人気組合せ順に並べることができます。オリジナルの出馬表を作成する取得した出馬表(単勝・複勝)からオリジナルの出馬表を作成するマクロを考えてみます。これを理解すれば、入力したデータを思いのまま加工することができます。エクセルのVBAをつかう準備パソコンにエクセルがインストールされていても、どこにマクロを書いたらいいか分からない。それにはVBAを使う準備をしてリボンに開発タブを表示させます。Excelオプションダイアログを表示せて、〈リボンのユーザー設定〉から〈開発〉にチェックを入れます。単勝人気順の組合わせで枠連、馬連、馬単のオッズを並べて表示します。人気順に1列で並べる方法と、軸馬(枠)ごとにブロックで表示して視覚的に表現する方法のマクロを考えてみます。オッズから勝負気配を読み取る馬連で勝負をして、せっかく馬券が当たったのに枠連の方が配当がよくてガッカリという経験をした人も多いかと思います。これは特定馬について勝負気配ありの情報を得た人たちが、勢い馬券をその馬から流して馬連や馬単で全力勝負した結果、配当が枠連>馬連になると考えられます。調教や厩舎コメントなどはいっさい考慮せず、たんにオッズから勝負気配のある馬を読み取り、オッズのフォントを赤くするマクロです。PM初めまして!競馬をExcelで予想できないかとい思い、検索していたらここにたどり着きました。今、このサイトを見ながらマクロを作成しているのですが、第4回のオッズを見やすく~まで実施しているのですが、オッズ表を作成するマクロを実行すると枠連のオッズ表の8枠より右のセルL列からAB列まで「#N/A」と表示され、34行目のL列からAB列には、K34の値がL列からAB列まで続いてしまいます。何か私のコードに間違いがあるのでしょうか?ご確認よろしくお願いいたします。AM訪問いただきありがとうございます。実行してみましたが問題ないようです。kodak_7gbさんが実行した、それぞれのシートに入力されたデータのセル位置が、サイトに配置された画像と同じか確認してみてください。Tipsの「マクロのデバッグ」を参照して、どの部分にバグがあるかをみつけ修正することを試みてください。実行したいプロシージャに入力カーソルをいれ「F8」キーで1行づつ実行して、ワークシート上の動きが意図しないものなら、その部分を修正します。マクロは一発で動くことなどありません。根気よくデバッグとのたたかいです。kodak_7gbさん理想の予想プログラムができることを願っております。AMご返信いただきありがとうございます。コードを確認し、gamira様の説明を見ながらなんとかマクロを流すことができました。第11回までのマクロも流すことができました。ありがとうございます。第12回もまたあるでしょうか?楽しみにしています。結果ご報告いただきありがとうございます。第11回までお付き合いいただき感謝いたします。こんなに速く修正できるとはVBAの達人とお見受けしました。ー様のような方に拙いコードをお見せするのは恥ずかしい限りです。当サイトではあらゆる角度からオッズを眺め、何でこうなるのを考えていくことをモットーとしております。忙しいのを理由に秋競馬が始まるころには第12回として時間差のオッズを見比べて見たいと思います。PMいえいえ、VBAほぼ初心者です。仕事で少し使うくらいでコードはほとんどわかりませんが、なんとなくここがこういうことかと考えながらやってます。コメントをキャンセルメールアドレスが公開されることはありません。※サイトホーム競馬で学ぶエクセルスポンサーリンクprofileこの記事を書いたひとgamiraご訪問ありがとうございます。68歳からエクセルのVBAを学び、趣味である競馬の予想プログラム作りにゼロから挑戦。そんな経験から、競馬を題材にすればVBAも興味を持って学習できますので、VBAを始めるきっかけになればという思いから本サイトを立ち上げました。VBAのことは分からなくても競馬のためなら少々は理解しようとがんばれます。自分流の予想プログラムができる頃にはVBAスキルアップ間違いなし、を目標にしています。defined.")}))})()タイトルとURLをコピーしました。