2008-05-08

Webからの連続取得

復習

2週間ぶりですので前回の内容を思い出すところから始めましょう。
最新から50日分のデータをA1セルから読み込みます。1行目に「日付 始値…」が書かれ、2行目から51行目までにデータが貼り付けられます。
よって52行目から、次の50日分のデータを貼り付けることになります。
これを10回繰り返すプログラムを書いてください。

貼り付け位置の調整

ライブドアの株式分割のように、50日分のデータが必ずしも50行分に貼り付けられるわけではありません。
従って、毎回51行ずつ下に貼り付けるのではなく、貼り付けた後で何行目までに貼り付けられたのかを数えて、次回はその次の行に貼り付けてください。
4月17日の最後に勉強したプログラムを応用すれば出来ます。

ポイント
これまでは「最初の表は1行目から貼り付ける、次の表は52行目から貼り付ける」という規則性がありましたが、今度は最初の表は1行目から貼り付ける点は変わりませんが、次の表を何行目から貼り付けるかを数えなければなりません。従って「何番目の表なのかを表す変数」と「どこから貼り付けるかを表す変数」を別に用意してください。

余分な行の削除

「日付 始値…」の行は最初に一行あれば十分です。2回目に52行目から貼り付けた後で52行目を丸ごと削除してしまいましょう。
ヒント:52行目を削除するプログラムは「マクロの記録」を使って調べることも出来ますが、一番手短なのは
Rows(52).Delete
です。Rowsの後の括弧の中の数字が、消したい行の番号です。

最後まで全て取得しましょう

ここまでは、For i = 0 To 10 を使って11回取得しましたが、現実的には「データの最後」まで繰り返し取得する必要がありますし、最後まで取得するには何回取得するか予め数えるのも大変です。
そこで先ほどの「貼り付けた後で何行目までに貼り付けられたのかを数えて」一行も貼り付けられていなかったら反復を終わらせる、というプログラムを書いてください。 4月17日に勉強したwhileやuntilを使えば出来ます。

これで株価データの取得は一区切りつきましたので、ここまでのプログラムをレポートとして提出してください。
締切:5月22日の講義開始まで 提出方法:メールまたはレポート用紙

応用

気象庁の過去の気象データ検索に関しても同じようにプログラムを組むことでデータを自動的にダウンロードできます。

0 件のコメント: