6.Excel 2013 の WEB クエリを VB2013 から操作する(09_Xls_11) (旧、SampleNo.451) |
1.Excel 2013 の WEB クエリを VB2013 から操作する 2. 3. 4. 5. 6. ※ 起動及び終了処理及び使用関数等の記載が漏れていたらExcel 操作ワンポイントテクニック集その1(09_Xls_02)の方をご覧下さい。 |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 7 (32bit)/VB2010(SP1Rel) Framework 4.0(SP1Rel)/ターゲットCPU:x86 Excel 2013 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :Microsoft.Office.Interop / 参照設定:Microsoft Excel 15.0 Object Library / WaitTime.dll 参照設定方法参照 使用コン:Button1 トロール:別途、Excel の起動及び終了処理をこちらを参考にして作成しておいて下さい。 このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.Excel 2010 の WEB クエリを操作し WEB 上の表データを取得する |
エクセルの Web クエリ(メニューのデータ→Web クエリ)を VB2013 上から操作して、Web 上のHTMLファイル内の表データを取得してみました。 取得したデータは、エクセル上に表示するようにしております。 こちらのサンプルは、Web クエリを使って簡単に WEB 上の表データが取得できるという見本で、実使用には、09_Xls_12 のサンプルを使って下さい。 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Call ExcelOpen("", "") '新規ファイルをオープンして、Excel を起動 '============================================================================= '下記、気象庁の東近江市の本日のアメダス(表形式)のデータを取得 'http://www.jma.go.jp/jp/amedas_h/today-60196.html?groupCode=43&areaCode=000 '================== Webクエリ機能を使ってデータの取り込み ================== '取り込んだデータの表示開始位置を指定 Dim xlRange As Excel.Range = xlSheet.Range("A1") '取り込み先のデータファイルの URL 又は、パス Dim filePath As String = "URL;" & TextBox1.Text '上記 URL が記載してあります。 Dim xlQTs As Excel.QueryTables = xlSheet.QueryTables '指定の htm ファイルのクエリテーブルを新規作成 Dim xlQT As Excel.QueryTable = xlQTs.Add(Connection:=filePath, Destination:=xlRange) 'テーブル作成時の条件を設定(別途、ヘルプ又は、下記資料をご覧ください) 'http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel._querytable_members(office.11).aspx With xlQT .PreserveFormatting = True '最初の 5 行の共通の書式がデータの新しい行に適用 ' "" の場合すべてのデータを取得 If TextBox2.Text.Length > 0 Then '現時点では、6 のテーブルを取得する事になっていますが、サイトの変更で変わる場合があります。 .WebTables = TextBox2.Text '該当のテーブル("4,5" のような指定も可) End If .Refresh(BackgroundQuery:=False) 'QueryTable を更新します End With xlApp.Visible = True 'Excelを表示(必ずとも表示しなくてもよい) '使用した Com オブジェクトの解放処理 MRComObject(xlRange) MRComObject(xlQT) MRComObject(xlQTs) '======================================================================================== '確認のため5秒間表示(実使用時は、必要なし) WT.WaitTime(5000) '============================================================================= 'Excelファイルを上書き保存(True 又省略すれば)して終了処理を実行 Call ExcelClose(IO.Path.GetFullPath(".\Test.xlsx"), True) 'False の場合保存しないで終了 'Excel.EXE がタスクマネージャーに残っていないか調査(実使用時は必要なし) WT.WaitTime(1000) Call ProcessCheck() End Sub 図1.上記実行結果(テーブル番号 5,6 を取得) |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
WEB 上の表データを取得 Excel 2010 の WEBクエリ エクセル HTML 表データ |