三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


広告:


[記事一覧、バックナンバーを見る]

XXXXXさんへ JRAオッズ取得 Excel2016でテストしたブックを保存しました

XXXXXさんへ
熱い、紹介、転載不可の
メッセージありがとう。

JRAオッズ取得の
テストで使用したExcelブックを
http://ie.vba-ken3.jp/test/20170820.zip
に保存しました。アレンジして使ってみてください。

コードだけで、動くブックを保存していなくてすみませんでした。
次回から、あるていどまとまったら、ブックを公開してみようと思います。
ken3memo.hatenablog.com
ken3memo.hatenablog.com
2017 JRA 単勝オッズをExcelへ取り込むVBA - YouTube
www.youtube.com

要望には、すべてこたえられないと思いますが、
気長に、温かい目でお待ちを・・・ではまたぁ。

中古スマホ ABC 松竹梅? ARROWS NX F-05F 購入・・・

最近、テスト用で格安SIM OCNで データ通信+ショートメール 通話は無しで考えていたり。

通話無しで、持ち運ぶ予定がないので、
バッテリーのヘタった 中古スマホでもいいかなぁ・・と検討中。

フルHDの解像度、画面はいらないのだが、
テストで一つはあってもいいかなぁと思い、
三年前の機種 ARROWS NX F-05F を セレクト。

1.ここで迷うのが 状態・・動けばいいので状態Cを選んだが、
 ポチッたあとに、少し出してBにしとけばよかったかなぁと思ったり。

上中下 ABC 松竹梅 だったら、
真ん中を選びたい、そんな心理かなぁ。

※連休最終日の今日、衝動買いでランクCを購入。

↑う~ん、、、Bだったかなぁ?
でも、価格を見ると、一万以上だすなら、新品も選択肢に入るしなぁ。

2.三年前の上位機種か?それとも現在の下位機種・・・
二万から三万だすと、新品でいい機種がありますね。
テスト用でアカウント作成のSMS受信、Youtube動画・WEB確認用なので
現在の一万円クラスの 下位機種でもよかったのかも・・・

3.通話無しで、SMSと画面確認なので、タブレットもアリだったかも?
通話無しで、スマホをデータ通信 SMS用途なのだから、。
コスパの高い 新品タブレットでもよかったかも?



用途と予算に合わせて最適解を・・・なかなかむずかしいですね。
格安シムと中古スマホで暴れまくる?
そんなお話はまた今度・・・
うまく活用して、
安物買いの銭失い
にならないようにしないとなぁ・・・

TABLE WebのJRA3連単オッズ表 二重のテーブル からデータ取得のテスト

3連単のオッズ取得にチャレンジしてみたいと思います。

多くの、と言っても二名ですが、
下記のようなメッセージをいただいています

>宜しければ今一番売れている馬券種の3連単を取り上げて頂けませんでしょうか。
>例えば、、
>3連単の全てのオッズ収集後に指定した人気を購入する。
>理由、3連単は性質上、多点買が基本で一点100円を100点以上購入する事もある為です。

など、3連単のリクエストをいただいてます。
単勝の次は馬連かなぁと
思いつつも、
リクエストが来たので、
先に3連単のオッズ取得にチャレンジしてみたいと思います。

下記、いつもの 右往左往しているライブ解説動画です。。。
JRA 3連単オッズ 取得プログラム作成前の確認をライブで Ken3 ライブ プログラミング テスト中 - YouTube
www.youtube.com

1.現物の確認

実際のHPを見たり、
ソースを見たりして、
TABLEの構造を探ります。

1.1 自作のIE TABLE確認ツールのデバッグを兼ねて探ってみる
少し前 テストで作成した
ken3memo.hatenablog.com
↑自前のTABLE取り出しツールのデバッグを兼ねて、
3連単の構造を探ってみたいと思います。

該当テーブルは、
<table class="santanOddsHyo">
  <tbody><tr>
    <th class="rank">1着</th>
    <th class="ubn2">2</th>
    <th class="ubn2">2</th>
一行目 TR 一着、
二行目 TR 二着
三行目 TR三着
      ここに二重のテーブルが続く
      <tr>
        <td class="rank">3着</td>

        <td class="jikubetuOdds">
              <table class="oddsTbl">
                <tbody><tr>
                  <th class="ubn3 Top">1</th>
                  <td class="oddsData Top">---</td>
                </tr>
                <tr>
                  <th class="ubn3">3</th>
                 <td class="oddsData">  14516.8</td>

                </tr>
↑この処理、仕掛けを考える。

クラス名の取り出しは、
.classNameで可能なので、
If objTABLE.className = "santanOddsHyo" Then
で、判断しました。

下記、ライブのデバッグで作成したソースです。
※変数名など変な感じですが、
 処理の参考となれば幸いです。

Private Sub CommandButton2_Click()
    '3連単 データ取得のテスト
    
    '選択されていたら、作業シートに書き込む
    Dim 最終行 As Integer  '急に漢字の変数使うなよ・・・
    
    Sheets("作業").Select  'データセット先に切り替える
    
    Cells.Select
    Selection.ClearContents
    Range("A1").Select
    
    最終行 = 1
    
    
    'テーブルを探す
    'タグの取出しが、.getElementsByTagName("TABLE")で 可能なので、
    
    '表をDATAシートに書き出す
    Dim x As Integer  '列の管理
    Dim y As Integer  '行の管理
    Dim n As Integer  'TABLEの管理
    
    Dim yy3 As Integer 'オッズ、縦
    
    Dim objTABLE As HTMLTable  'HTMLのテーブル
    Dim obj3TABLE As HTMLTable '子供のテーブル、三着、オッズ入り
    
    Dim strWORK As String
    
    Dim 買い目1 As String
    Dim 買い目2 As String
    Dim 買い目3 As String

    Dim オッズ As String
    
    'TABLEタグを複数取り出す
    'テーブルすべてを なめる 全件チェック
    For Each objTABLE In IE.document.getElementsByTagName("table")
        'クラス名が のテーブルを処理する <table class="santanOddsHyo">
        Debug.Print "objTABLE.className=" & objTABLE.className
        If objTABLE.className = "santanOddsHyo" Then
            
            '一行目 TR 一着、 買い目は動かない
            買い目1 = objTABLE.Rows(0).Cells(1).innerText

            '三着 <table class="oddsTbl"> ← ここに やっと オッズ
            x = 0 '列のループ
            For Each obj3TABLE In objTABLE.getElementsByTagName("table")
            
                '親のテーブル 二行目が二着ですよ
                'objTABLEs(テーブル).Rows(行).Cells(列).テキスト値
                x = x + 1
                買い目2 = objTABLE.Rows(1).Cells(x).innerText

                'ここの 二列目からが 3連単
                For yy3 = 0 To obj3TABLE.Rows.Length - 1 '行の数 ループ
                    'objTABLEs(テーブル).Rows(行).Cells(列).テキスト値
                    買い目3 = obj3TABLE.Rows(yy3).Cells(0).innerText  '馬番
                    オッズ = obj3TABLE.Rows(yy3).Cells(1).innerText  'オッズ
                    'オッズが---だったら、無しなのでスキップ
                    If オッズ <> "---" And Len(Trim(オッズ)) > 0 Then  '数値が入っていたら、シートに書き込む
                        Cells(最終行 + y, "A") = "'" & 買い目1 & "-" & 買い目2 & "-" & 買い目3
                        Cells(最終行 + y, "B") = オッズ
                        'セット位置を増やす
                        y = y + 1
                    End If
                Next yy3
            Next
            
            '行を増やす
            Cells(最終行 + y, 1).Select
            DoEvents
            
        End If
    Next
  
    '書き込み終了メッセージ
    MsgBox "シートに書き込みました、確認してください"
    
End Sub

手動で表を表示させてからのテストなので、
頭で、
開催地の選択、レース番号の選択などの処理が必要なので、
メニューを工夫しながら、次回作成してみたいと思います。

下記ライブのデバッグ動画です※頭の動画と同じです。
JRA 3連単オッズ 取得プログラム作成前の確認をライブで Ken3 ライブ プログラミング テスト中 - YouTube
www.youtube.com
デバッグ風景が、少しでも参考となれば・・・




三流君へ メッセージを送る

全ての質問に答えることはできませんが、
ダメもとで、気軽に質問、感想、メッセージを送ってくださいね・・・

感想や質問・要望・苦情など 三流君へメッセージを送る。
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:

アドレス:に返事をもらいたい
感想や質問↓:


(感想や質問・要望・苦情はHPで記事に載せることがあります。)
例:[XXXXさんへ回答例]←みたいに回答していたり...


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)