続続・時系列データ取得OOoマクロ更新

えー、当ブログのyahoofinance株価取得マクロを使用してくださっている皆様にはたびたびご迷惑をおかけしていますcalcsです。またバグ修正です。
こんな短い期間にデバッグ版を出しまくるぐらいなら最初からちゃんとデバッグしておけとお叱りの声をいただきそうで、ホントすみません。[:ひやひや:]

DLはこちら

せっかくなのでソースを読む人も居るかもしれないので、今回のバグのポイントをお話します。
このマクロの肝はまずyahooの当該ページから株価のテーブル部のソースを切り出します。

'ソースからテーブルを抽出
sText = ExtractText(Source, "調整後終値*</small></th></tr>" & Chr$(10), "</td></tr></table>")
のところです。ExtractText関数は第1引数の中から、第2、第3引数で囲まれた部分の文字列を返します。この時、第2、第3引数部分は含まれません。
バグ修正前は第3引数が"</table>"でしたが修正後は"</td></tr></table>"ですので、修正前だとテーブルのソースに1つ多く"</td></tr>"が含まれます。
'行単位に分割
aData = Split(sText, "</td></tr>")
ここで、空データの行が一つ多く出来てしまいます。この行は"</td>"でsplitした時に0個の要素を持つ配列になってしまいます。通常は始値終値で7個の項目を持っているはずです。
このマクロでは株式分割などの非株価データ行は2つの項目しか持たない(7より小さい)事を判断基準に非株価データをスキップしているので(そのスキップ分のセル位置ズレをあわせるのがGapToFix変数)、無駄にGapToFixが加算されます。
で、実際にはズレが無いのにズレがあることになってしまうので、次ページの最初のデータがズレ上がって前ページの最後のデータを上書きしてしまうのでした。

って、このメモ完璧に自分用ですね[:たらーっ:]・・まぁいいや。ソースコードなんて一年も経てば宇宙語ですからね、割と。