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
↑解説ページはこちら