復習
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 件のコメント:
コメントを投稿