プロが教えるわが家の防犯対策術!

 今まで、気象データの集計をするのに、特定のウェブ上で参照したい年月日を入力して、その日の時毎データの頁を開き、データ表をマウスで範囲を指定してコピーし、エクセルに貼り付けて、そのデータを用いて集計を行っておりました。
 しかし、上記の方法ですといちいち年月日の指定→画面の表示後必要箇所をコピー→エクセルに戻って貼り付け→ウェブに行って次の日の指定→と繰り返し作業が面倒です。
 そこで、アクセスのフォームで取り込みたい年月日の範囲を指定することで、参照元のウェブから、特定範囲のデータを次々にコピーして、テーブルに各データを格納できるマクロを作成できないかと考えました。
所有バージョンはアクセス2002です。
 今まではエクセルをよく使っており、簡易的なデータベースとしてもエクセルで済ませていましたが、データが蓄積すると処理に時間がかかるようになりましたので、アクセスを使った方がいいかなと考えます。
 クエリーをとりあえず構成できるようになったのは2日前からです。モジュールは全く作ったことがありません。
 よろしくご教示下さいますよう、お願い申し上げます。

A 回答 (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を取得することもできます。
必要に応じて使い分けてください。
    • good
    • 1
この回答へのお礼

 再度ありがとうございます。
 サンプルとして作成していただいたものを参考に、取り込みたいURLと文字列を変更したところ、とりあえずメッセージボックスに表示することができました。
 ご教示いただいた内容をとっかかりにして、勉強することができます。

お礼日時:2003/11/26 19:21

可能ですが、


>モジュールは全く作ったことがありません。
というレベルでは、先が長そうです。

処理は大雑把に考えて
(1)フォームで指定した日付をプログラム(VBA)に渡す。
(2)(1)の値を参照して、InternetExplorerコントロールで
  指定URLからデータを取得。
(3)(2)で取得したデータから必要部分を抜き出す。
(4)抜き出したデータをテーブルに追加。
てな感じですが、それに伴い、以下のような
ことを大雑把にでも理解しておく必要があります。

(1)Accessのフォームに関する知識。
(2)InternetExplorerコントロールに関する知識。
(3)文字列操作に関する知識。
(4)ADOもしくはDAOといったデータベース操作に関する知識。

まぁ、少しずつ学んでいって、具体的にわからない所が
でてきたら、質問してけばよいかと思います。

この回答への補足

 アドバイスありがとうございました。
 報告が遅くなり申し訳ありません。
 あれから勉強し、知識(1),(3)をある程度理解できました。また、処理(1)も概ね可能なレベルになりました。
 つきましては、処理(2)の方法についてご回答賜りたく思います。11/28で本質問を締め切りたく思います。
 よろしくご教示のほどお願い申し上げます。

補足日時:2003/11/25 21:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています