三流君のソースコード置き場

ブログにソースコードをアップして、ブログの検索機能で利用してます(利用予定です)

よく検索されるキーワード: [VBA]/ [VBS]/ [CreateObject]/ [Excel]/ [ADO]


VBA IE操作 rowspan HTMLTableCell メモ

ken3memo.hatenablog.com
より

現在単勝の表を下記のコードで取り込むと、

    'Webの表をシートへ転記(代入する)
    For y = 0 To objTABLE.Rows.Length - 1  '行のループ
        For x = 0 To objTABLE.Rows(y).Cells.Length - 1  '列数分ループ
            ' objTABLE.rows(行).cells(列).innertext
            Cells(y + 1, x + 1) = objTABLE.Rows(y).Cells(x).innerText
        Next
    Next

データがずれてセットされています

    <th rowspan="2" class="waku waku7">7</th>

rowspan="2" で 枠が結合された表になっていると
データがズレてセットされてしまう。

小細工したソース
※前半よけいな部分があるけど

    'まず、書き込み先シート、データをクリアする
    Cells.Delete Shift:=xlUp 'シート全体を削除する
    Range("A2").Select       '先頭A1を選択する、
    
    '表をDATAシートに書き出す
    Dim x As Integer  '列の管理
    Dim y As Integer  '行の管理
    
    Dim SET_Y As Integer
    Dim SET_X As Integer
    
    Dim objCELL As HTMLTableCell
    
    SET_Y = 1
    
    'Webの表をシートへ転記(代入する)
    For y = 0 To objTABLE.Rows.Length - 1  '行のループ
        SET_X = 1
        For x = 0 To objTABLE.Rows(y).Cells.Length - 1  '列数分ループ
            ' objTABLE.rows(行).cells(列)
            Set objCELL = objTABLE.Rows(y).Cells(x)
            
            If objCELL.rowSpan > 1 Then  '縦に複数の時
                Cells(SET_Y + 1, SET_X) = objCELL.innerText  '下にも同じくセット
            End If
                        
            '既にデータありか、縦に結合されているか?
            If Len(Trim("" & Cells(SET_Y, SET_X))) > 0 Then
                SET_X = SET_X + 1
            End If
            
            Cells(SET_Y, SET_X) = objCELL.innerText  'データセット
            
            '横に結合されているか判断
            SET_X = SET_X + objCELL.colSpan  'カラム分 横に移動
        Next
        SET_Y = SET_Y + 1
    Next

小細工の解説は、動画を見てください ぉぃぉぃ・・・
単勝表の取り込み バグ修正 VBA IE操作 JRA Ken3 ライブ プログラミング テスト中 です・・・ - YouTube
www.youtube.com


積み残し 問題点
この処置だと、まだまだで
8枠18番みたいに、ひと枠に3頭 馬が入るとまだまだエラーになるかな

まだまだ、先が長いですね。。。。

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


Ken3 ホームページ 目次

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

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

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