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

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

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


2009-03-16 三流解説 VBA IE Webページの表を取り込む サンプルプログラム

https://www.youtube.com/playlist?list=PLskfqQDb_hPLFOCHjhMeYCM-rMt2r0Z7o
www.youtube.com



2009-03-16 三流解説 VBA IE Webページの表を取り込む サンプルプログラム
http://ie.vba-ken3.jp/sample/002/2009-03-16.html
↑解説ページはこちら

'C8のURLを表示
'C10の条件でテーブルを探す
Sub Web_Get_Table_test0317()

    'IE起動
    Dim objIE    As Object  'IEオブジェクト参照用
    Set objIE = CreateObject("InternetExplorer.application") 'IEのオブジェクトを作る
    objIE.Visible = True '見えるようにする(お約束)
    
    'C8のURLを表示する
    '.Navigate で 指定した文字列のURLを開く
    objIE.Navigate Range("c8").Text
    
    '表示終了まで待つ .Busy(忙しい)間 と.ReadyState(ステータス)が4以外の時 ループ
    Do While objIE.Busy = True
         DoEvents  '特に何もしないで.Busyの状態が変わるまで待つ
    Loop
    Do While objIE.ReadyState <> 4
         DoEvents  '特に何もしないで.ReadyStateの状態が4に変わるまで待つ
    Loop
    
    'テーブルを探す
    'タグの取出しが、.tags("タグの名前")でできるので、
    Dim objTABLE As Object 'TABLEの格納用
    Set objTABLE = objIE.document.all.tags("TABLE")  '.tags("TABLE")でTABLEタグを抜く
    '↑テーブルを取り出す。
    
    '1行目のデータを取り出す。
    ' objTABLE(n).rows(0).cells(x).innertext
    Dim n As Integer  'n番目の表
    Dim x As Integer  '列の管理
    Dim y As Integer  '行の管理
    Dim nTARGET As Integer  '見つけた表の番号
    
    nTARGET = -1   '初期値を見つからなかった-1とする
    For n = 0 To objTABLE.Length - 1  'テーブルの数ループする。
        Debug.Print "n = " & n
        Debug.Print "列数は .Rows(0).Cells.Length = " & objTABLE(n).Rows(0).Cells.Length
        For x = 0 To objTABLE(n).Rows(0).Cells.Length - 1  '列数分ループ
            Debug.Print objTABLE(n).Rows(0).Cells(x).innertext '中身をテスト表示
            'Cells(x) と C10の条件を比較して目的の表か判断。
            If objTABLE(n).Rows(0).Cells(x).innertext = Trim(Range("c10").Text) Then
                nTARGET = n  '表の番号をセット保存。
                Exit For
            End If
        Next
        If nTARGET <> -1 Then Exit For  '見つけられたら抜けるよ。
    Next
    
    If nTARGET = -1 Then  '見つからなかったか?
        '※テーブルが見つからない時は、エラーメッセージを表示
        'メッセージ表示
        'IE を 閉じるか確認
        If MsgBox("テーブルが見つかりません" & vbCrLf & "IEを閉じますか?", _
                   vbYesNo) = vbNo Then
            Exit Sub  '何もせず関数を抜ける。IEを閉じない
        End If
    Else  '見つかった時
        '目的の表を見つけたらシートに書き出す。
        Sheets("TABLE").Select  'シートを切り替える
        Cells.Select
        Selection.Delete Shift:=xlUp
        Range("B2").Select
        
        'Webの表をシートへ転記(代入する)
        For y = 0 To objTABLE(nTARGET).Rows.Length - 1  '行のループ
            For x = 0 To objTABLE(nTARGET).Rows(y).Cells.Length - 1  '列数分ループ
                Cells(y + 1, x + 1) = objTABLE(nTARGET).Rows(y).Cells(x).innertext
            Next
        Next

    End If
    
    '終了処理
    objIE.Quit  'IEを閉じる
    Set objIE = Nothing   '変数の後始末
    
End Sub



冒頭の再生リストと同じです。
https://www.youtube.com/playlist?list=PLskfqQDb_hPLFOCHjhMeYCM-rMt2r0Z7o
www.youtube.com

2009-03-16 三流解説 VBA IE Webページの表を取り込む サンプルプログラム
http://ie.vba-ken3.jp/sample/002/2009-03-16.html
↑解説ページはこちら

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


Ken3 ホームページ 目次

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

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

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