
今まで、気象データの集計をするのに、特定のウェブ上で参照したい年月日を入力して、その日の時毎データの頁を開き、データ表をマウスで範囲を指定してコピーし、エクセルに貼り付けて、そのデータを用いて集計を行っておりました。
しかし、上記の方法ですといちいち年月日の指定→画面の表示後必要箇所をコピー→エクセルに戻って貼り付け→ウェブに行って次の日の指定→と繰り返し作業が面倒です。
そこで、アクセスのフォームで取り込みたい年月日の範囲を指定することで、参照元のウェブから、特定範囲のデータを次々にコピーして、テーブルに各データを格納できるマクロを作成できないかと考えました。
所有バージョンはアクセス2002です。
今まではエクセルをよく使っており、簡易的なデータベースとしてもエクセルで済ませていましたが、データが蓄積すると処理に時間がかかるようになりましたので、アクセスを使った方がいいかなと考えます。
クエリーをとりあえず構成できるようになったのは2日前からです。モジュールは全く作ったことがありません。
よろしくご教示下さいますよう、お願い申し上げます。
No.2ベストアンサー
- 回答日時:
ほんじゃ、ok、gooどちらからアクセスしてるか
しりませんが、「教えて!goo」のトップページに
出る質問タイトル3つを取得する例。
VBEの[ツール]→[参照]でMicrosoft Internet Controls に
チェックを入れてください。
Sub test()
Dim ie As New InternetExplorer
Dim mylines As Variant
Dim qlines As Variant
'指定URLに接続
ie.Navigate ("http://oshiete.goo.ne.jp/jsp/oshiete_top.jsp")
'読み終わるまで待つ
Do Until ie.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
'読み込んだテキストを改行で分割
mylines = Split(ie.Document.body.innertext, vbCrLf)
'"Q."を含む文字列抽出
qlines = Filter(mylines, "Q.")
'メッセージボックス表示
MsgBox (qlines(0) & vbCrLf & qlines(1) & vbCrLf & qlines(2))
'IE終了
ie.Quit
End Sub
上記例ではinnertextを使ってますが、
innerhtmlでHTMLを取得することもできます。
必要に応じて使い分けてください。
再度ありがとうございます。
サンプルとして作成していただいたものを参考に、取り込みたいURLと文字列を変更したところ、とりあえずメッセージボックスに表示することができました。
ご教示いただいた内容をとっかかりにして、勉強することができます。
No.1
- 回答日時:
可能ですが、
>モジュールは全く作ったことがありません。
というレベルでは、先が長そうです。
処理は大雑把に考えて
(1)フォームで指定した日付をプログラム(VBA)に渡す。
(2)(1)の値を参照して、InternetExplorerコントロールで
指定URLからデータを取得。
(3)(2)で取得したデータから必要部分を抜き出す。
(4)抜き出したデータをテーブルに追加。
てな感じですが、それに伴い、以下のような
ことを大雑把にでも理解しておく必要があります。
(1)Accessのフォームに関する知識。
(2)InternetExplorerコントロールに関する知識。
(3)文字列操作に関する知識。
(4)ADOもしくはDAOといったデータベース操作に関する知識。
まぁ、少しずつ学んでいって、具体的にわからない所が
でてきたら、質問してけばよいかと思います。
この回答への補足
アドバイスありがとうございました。
報告が遅くなり申し訳ありません。
あれから勉強し、知識(1),(3)をある程度理解できました。また、処理(1)も概ね可能なレベルになりました。
つきましては、処理(2)の方法についてご回答賜りたく思います。11/28で本質問を締め切りたく思います。
よろしくご教示のほどお願い申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスでウェブ上のデータを...
-
VB2010で、選択した系列を最前...
-
エクセル・グラフの 横軸に値を...
-
XMLでデータとして画像を指定す...
-
【ExcelVBA】値を変更しながら...
-
C# DataTableに最後に追加した...
-
【VB.NET】Excelの最終行までの...
-
【C#】textBoxの指定行のデータ...
-
【エクセルVBA】DBのデータをCSVに
-
「Nullの使い方が不正です」の...
-
Excel VBAでXML形式のデータを...
-
access vba 『○○件づつ表示』を...
-
1行のデータをスペースで区切っ...
-
DataGridの全行編集状態での行追加
-
Excel VBAで1週間毎にカテゴリ...
-
batでレジストリキーから読み取...
-
エクセルのCSV読み込みについて
-
VBAコンボボックスの内容が反映...
-
VBAでアクセスDBからデータの取...
-
矩形グラフ(オシロやロジアナ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# DataTableに最後に追加した...
-
VBAコンボボックスの内容が反映...
-
TextBox内の改行
-
【C#】textBoxの指定行のデータ...
-
【VB.NET】Excelの最終行までの...
-
COBOL数値転記の仕様
-
AccessVBAでのExcelメモリ解放
-
VBAでアクセスDBからデータの取...
-
XMLでデータとして画像を指定す...
-
「Nullの使い方が不正です」の...
-
【ExcelVBA】値を変更しながら...
-
アクセスでウェブ上のデータを...
-
非同期のプロセス間通信(パイプ...
-
Excel VBAでフォルダ内の全テキ...
-
エクセルのセル最終行取得
-
データベースへのアクセス
-
batでレジストリキーから読み取...
-
ListViewで表示されたデータの...
-
vbaで出来ますか?
-
Python 繰り返し文による出力方法
おすすめ情報