エクセル2003のVBAで、ある時間になったら楽天のRSS情報を取得したいと思っています。

どうするのがいいのでしょうか?
do while でぐるぐるまわっていて、その時間になるとデータを取得するというのは簡単にできるのですが、
1分おきとかが簡単にできる関数があったらつかいたいのです。あるんでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2011/04/13 10:03:36
  • 終了:2011/04/20 10:05:03

回答(3件)

id:asuka645 No.1

あすか回答回数856ベストアンサー獲得回数972011/04/13 10:49:12

ポイント27pt

タイマーイベントを使うといいでしょう。

たとえば300秒おきに処理を実行したいのなら、下記のようにします。

Timer1.Interval = 300000   //単位:ミリ秒

Private Sub Timer1_Timer()
//処理を書く
End Sub

参考「タイマーイベント

id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692011/04/13 15:41:30

ポイント27pt

一定時間後に実行させる関数は普通

Application.OnTime

です。

http://officetanaka.net/excel/vba/tips/tips114.htm


1分置きなら、呼び出す関数から、その関数をApplication.OnTimeで呼び出せばいいわけです。

ただし、長い時間の場合はプログラムを実行させておくというのは現実的ではないので

タスクスケジューラと組み合わせたりすればいいと思います。

id:niwa-mikiho No.3

niwa-mikiho回答回数508ベストアンサー獲得回数382011/04/15 03:38:49

ポイント26pt

エクセルの VBA ではなく、VBS として作るのはどうでしょう?

VBA が扱えるのであれば大きな壁は無く作れるかと。



たとえば、rssget.vbs なんてファイル名にした場合、Windows のタスクスケジューラで

指定時間に実行できますし、エクセルはワードとか、動作させるための環境を用意する必要もありません。



こちらも参考になるかと。

http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_03....

  • id:taknt
    回答できないからコメントで。

    >1分おきとかが簡単にできる関数があったらつかいたいのです。あるんでしょうか?

    Application.Wait Now() + TimeValue("00:01:00")
    これで 1分待ちます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません