【JRAホームページ】今週の出馬表を自動的にデータ化するUWSCを作成したが案外てこずった件

目次

先に、UWSCで自動実行した「出馬表」20250802-03のテスト結果 発表

先に結果を報告しておこう~右往左往しながらもなんとか全自動での出馬表完成に扱ぎ付けた!おめでとう~

上記の通り、コピペ元 [yyyymmdd馬場名.xlsm] サイズが88KBで、他のファイルが200KB以上となり無事データ化しているようでございます。

既にDB投入後の実際に使っているモノとの比較をしてみましょう~

同じコピペ原本を使ってはいるもののPathや管理データの些細な違いで完全一致とはいかないまでも、それに近い値はでているようであり一応、成功と言えるでしょう~

これで出馬表を心配しての外出・旅行はとりあえず、気にしなくても良いことになりましたw

また、現地作業でもUWSC+ExcelVBAさえあれば、簡単に自動化することも可能になり、ホテルに滞在中も現地で寝ている間にデータ化できるというのも、これまた私の考える理想形に近づいていると言えまする。

既に作成しているExcelVBA付きの表をコピペするUWSCモジュールを合体

以前に作っている「結果D」のヘッダーと明細の見出し、は公開していたが、「出馬表」のExcel原表は一部しか記事化していなかったようでw

まぁ、こんなもんは自分がデータ化したい項目とWeb表示に知りたい項目があるか?どうかで決まってくるだけのもんなので「結果D」が読める人は、さっさと自作していることだ!と思う。

ここで作成した「Excel表の見出しを縦に出力する」ExcelVBAをコピペして、出馬表の見出しを作成してみる。

Sub A1RC1Display()
    If Application.ReferenceStyle = xlA1 Then
        Application.ReferenceStyle = xlR1C1
    Else
        Application.ReferenceStyle = xlA1
    End If
End Sub
Function CHRCVT(r) As String
     If IsNull(r) Then
         CHRCVT = ""
     Else
         CHRCVT = Trim(r)
     End If
End Function

Sub Midashi_syusouSET()
Dim RET As Variant
    RET = DTL_MIDASITate("出走RH", "出走RH 見出し一覧縦")
    RET = DTL_MIDASITate("出走D", "出走D 見出し一覧縦")
End Sub

Function DTL_MIDASITate(sh1, sh2)
Dim j As Integer
Dim wk_nm1 As String
    Sheets(sh2).Select ここをコメントにするとシートの移動をしない
    Sheets(sh2).Cells(1, 1) = "No."
    Sheets(sh2).Cells(1, 2) = "項目"
    j = 1
    Do Until CHRCVT(Sheets(sh1).Cells(1, j)) = ""
        'A列に順
        Sheets(sh2).Cells(j + 1, 1) = j
        '見出しをB列に表示させる
        Sheets(sh2).Cells(j + 1, 2) = Trim(Sheets(sh1).Cells(1, j))
        j = j + 1
    Loop
End Function

出馬表:ヘッダー見出し [出走RH]

No. 項目
1 開催日
2 曜日
3 場名
4
5 日目
6
7 競走名
8 競走条件
9 距離
10 ダ芝
11 出走頭数
12 WIN5
13 発走時刻
14 変更
15 外回
16 出走D_出走頭数CK
17
18 出走D_出走頭数

出馬表:出走データ見出し [出走D]

No. 項目
1 開催日
2 場名
3
4 K馬番
5 枠番
6 ブリンカー
7 馬名MK
8 馬名
9 性齢
10 毛色
11 負担重量
12 減量
13 騎手
14 調教師
15 所属場
16 馬主
17
18
19 母父
20 ①出走日
21 ①場
22 ①R
23 ①馬番
24 ②出走日
25 ②場
26 ②R
27 ②馬番
28 ③出走日
29 ③場
30 ③R
31 ③馬番
32 ④出走日
33 ④場
34 ④R
35 ④馬番

こんな感じのデータが「JRAホームページ」から取得することができる。
ただ「結果Dと出馬表」の大きな違いは、過去の結果Dは今でも過去10年程度は簡単に見れるが、

出馬Dは翌週の木曜日には綺麗にホームページから消え去る運命にある。

URLが何らかの法則で数字化されているので、それを解析すれば、いつでも読みに行くことが可能になるとは思うが、私にその天賦の才は60年間見つからなかった。。。なので、毎週きちんと出馬表だけはコピペしておく必要がある!

一度は、そんなもん!結果Dから作れるじゃねえかぁ~と、軽く考えていた事もあったが、これが実際やってみると、私に超速で「結果Dから出馬表を作れる」といった並外れた技術の才があろうはずもなく。。。一応出来はしたもの超絶!時間が掛かり申し立て奉るモノで、3ヶ月データを1週間パソコン稼働しまくる状態になり、「手動でも毎週コピペした方がよい!」という修行であったようだ。

ここから「GAS」「Python」「Power Automate Desktop」「Dosコマンド」など、Aiを使いながら、テスト試用するもどれも一長一短で、「UWSC」の代わりにはなれど、今のUWSC資産を活用し、ExcelVBAとの連携をスムーズに実行するには「Python」なら出来るイメージはつくが、今すぐ完成まで行けるのか?という疑問符はつく。

ここで脳ミソをフル回転させて考えたが、良い考えがササッサっと出る感じなら、既にそこそこ有名なプログラマーとして世に君臨していたはずだ!

そうだ!自らを追い込み、notePC一台でバンコクの安ホテルに泊まり、それしかやることのない環境にすればきっとプログラミングするに違いない!きっとそうだ~と早速Peachでバンコクの旅へ出かけたものの … Programming意欲はあったが、Pythonがインストール出来ない。。。LibreOfficeもアップデート出来ない。。そしてYoutubeの音声が出ない。owataa.

まぁね~そりゃ色々とありますよ。人間だから。。。って全部お前のミスやんけ~って

お陰で旅でのプログラミングは「UWSC一択」になったので、こりゃ生産性うんぬんかんぬん、というよりもUWSCにはお強くなり、スキルアップしたわけでございます。

  • Excel(ExclVBA含む)
  • UWSC
  • Dosコマンド

Accessは作成済のマクロは動くが、新しい.accdbを作成すると固まる現象が連発するのでヤメ!
M.2 SSD 1TBのある部分にアクセスするとダメなのか?Windowsの破損しているファイルにアクセスすると止まるのか?Pythonがインストールできないことから、多分後者ではないのか?と思ったが、異国の地(バンコク)で一台限りのノートパソコンを弄るのは、ちょっと冒険が過ぎると思い自重した。

代わりに、UWSCで自分の限界まで突っ走って組んでやろう~と決意し、「ホテル⇒格安タイ料理屋⇒はかた珈琲⇒エムクオーティエ地下」といったルーティーンでの旅となったわけでありんす。

また、今年になり上記で作成した出馬表と結果DのExcelシート「側だけ」を金曜日の11時にコピペするUWSCをテストしていたのもあり、後は、

  1. 該当出走場のExcelを自動で立上げ
  2. データ作成のボタンを押し(JRAホームページから自動でExcelデータ化するのを数分待ち)
  3. 作成したExcelシートを保存する

これを組むだけにはなっていた。

今週分出馬表を作成し、UWSCモジュールをスケジュール定期実行!

これも既に記事化している。

これで作成した今週分の出馬表を土曜日分は金曜の10:30頃に、日曜日分は土曜の10:30頃にデータ化できるサイン「JRAホームページの出馬表」各場の右上に「馬番確定」が表示されるので、前日の11時以降にExcelシートの「側」をコピペし作成するUWSCモジュールをスケジュール実行している!

後は、そうこれを①立上げて、②ボタンを押して、③保存するだけ!するだけ。だけ。。のことよ~( ̄▽ ̄)

さて、ようやく自作したExcelシートのマクロを貼り付けたボタンを「ポチィ!」と押すだけのUWSCモジュールを作成しようではないか!

Excelファイルは、開いたり掴んだりは無料版UWSCでも出来るのだが、どうやら書き込みが有料版でないと出来ない仕様になっているらしい~というところまでは、旅行でググってはいた。

サンプルも発見できたし、ファイルOpenし「セキュリティ警告」を消すことは出来た。

今回、私はバンコク旅行で暇を持て余していたのと、UWSC+ExcelVBAしか使えない状況だったので無理やりUWSCで組んだが、ハッキリ結論から言うと「Excel操作の自動化は確実にPythonでやった方が効率的!」とだけ言っておく。

今なら、Aiに聞けば無料でも繰り返すことで、
Pythonならば、インストールからDockerの設置まで全て手順も解説」してくれる。
UWSCだとManusが動かないまでも、基本的な命令が一部正解なところがあるので、命令すら?の場合の参考にはなる。が、他のAiはほぼ全滅!ほぼ嘘八百。Notebook LMに自作UWSCモジュールサンプルと構文のURLをある程度突っ込むと、それなりのモノは返ってくるようにはなるが、ここまでお膳立てすると。。。初めからUWSCを自分でコーディングした方が格段に速い!ってことになる。

UWSCモジュール無料版、力技でExcelシートに出馬表をデータ化し保存する

  1. セキュリティ警告が出ないように出馬表Excelシートを立ち上げる
  2. JRAホームページからコピペ「自動作成ボタンを押す」
  3. 数分後データ化された出馬表「Excelシートを保存する」

Webブラウザだと、ブラウザの機能が使え、ある程度汎用的なプログラムが書けるのでUWSCで組むメリットも見つかるが、個別のソフトやアプリのクリック動作は、①画像認識 ②座標指定 のどちらかになり、私はデータ化する場合は確実に押せる②座標指定にする。が、これだとPCや画面ごとに座標のチェックを行わないといけない。。。

A small pride of a programmer
Hebo Programmerの小さなプライドは、今回置いておいて次の3つを座標で無理やり押します!

ただコレね!結構うまく押せないから、苦労するんだよw

これでプログラム的には一応の完成を迎えるが、どうもUWSC側でのEXEC(アプリ,true)が上手く動かないようで…もう少しLoop型を弄ってみるのも良いのだが、同じ処理をスケジュールで10回やることにした。フォルダー内ファイル一覧とファイルサイズを取得し、ファイルサイズ数値が規定数値以下だったら処理するというプログラムでこれまた力技で処理する。

5分毎に動かし10回やっておけば、取り逃がすことは無いでしょう~(と、この時は思っている)

EXEC(アプリ,true)とid管理でスムーズな動きがテスト出来れば、スケジュール21行が一行と言わずともLoopで3行程度で収まるのだが … まぁ今は羅列で行くよw

この、EXEC(アプリ,true)案外上手く動いてくれない件も既に記事化しているので、よかったら見て下さいませw

具体的なUWSCモジュールは、「マクロで半自動化!go!go!!programming」の方でUWSCの人気が上がっていくようなら記事化するかも知れない。。。🙈🙊🙉

また自分の忘記で転記しておきたい!と願うならひょっとしたら書く気になるかもしれない。
今回はプログラミングというよりも愚痴ぐち書きたかったという欲求からコッチに書いた。ここまで見てくれている数少ないヘビーユーザーの皆様本当にありがとう~ございます💗

それでは、またね~( ̄▽ ̄)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次