WebページのTableをExcelへ保存
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2014年10月12日(日)06時59分 From: 管理人 | 返事 削除 変更 |
今回は2桁表示がメインのようなので、tableタグの中から市町村コード部分だけを抽出しています。 以下で一度処理をご確認ください。 また、teble情報抽出についても併せてご確認ください。 【tableタグデータをピンポイントに抽出する】 http://www.vba-ie.net/element/table.html Sub sample() Dim objIE As InternetExplorer Dim objTag As Object 'IEでサイトを表示 Call ieView(objIE, "http://www.tt.rim.or.jp/~ishato/tiri/code/kanto.htm") r = 1 For Each objTag In objIE.document.getElementsByTagName("table") For i = 0 To objTag.Rows.Length - 1 value = objTag.Rows(i).Cells(0).innerText Cells(r, 1).NumberFormatLocal = "@" Cells(r, 1) = CStr(objTag.Rows(i).Cells(0).innerText) r = r + 1 Next i Next End Sub Sub ieView(objIE As InternetExplorer, _ urlName As String, _ Optional viewFlg As Boolean = True, _ Optional ieTop As Integer = 0, _ Optional ieLeft As Integer = 0, _ Optional ieWidth As Integer = 600, _ Optional ieHeight As Integer = 800) 'IEのオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.Application") 'IEを表示・非表示 objIE.Visible = viewFlg objIE.Top = ieTop 'Y位置 objIE.Left = ieLeft 'X位置 objIE.Width = ieWidth '幅 objIE.Height = ieHeight '高さ '指定したURLのページを表示する objIE.Navigate urlName 'IEが完全表示されるまで待機 Call ieCheck(objIE) End Sub Sub ieCheck(objIE As InternetExplorer) Dim timeOut As Date timeOut = Now + TimeSerial(0, 0, 10) Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Sleep 100 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 10) End If Loop timeOut = Now + TimeSerial(0, 0, 10) Do Until objIE.document.ReadyState = "complete" DoEvents Sleep 100 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 10) End If Loop End Sub |
Message#1 2014年9月22日(月)12時36分 From: ともりん | 返事 削除 変更 |
あるサイトの表部分をExcelへ保存する方法をネット検索で見つけました。 しかし、表の中に"08"の値がExcelへ保存すると前の0が消えます。 以下のコーディングに追加などで実現可能でしょうか? 後で、2桁へ変換できることはわかっておりますが、桁数が不明として考えたいです。 よろしくお願いします。 参照HTMファイルは、 http://www.tt.rim.or.jp/~ishato/tiri/code/kanto.htm からデスクトップへ「市町村コード・関東.htm」の名前で保存しました。 Sub sample1() With ActiveSheet.QueryTables.Add(Connection:= _ "URL;C:\Users\Hoge1\Desktop\市町村コード・関東.htm", _ Destination:=Range("$A$1")) .Name = "?kd=1&tm=d&vl=a&mk=1&p=1" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlAllTables .WebFormatting = xlWebFormattingNone .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降