ここから本文です

VBAによる株価取得方法(お礼500枚)

kaw********さん

2008/5/311:33:24

VBAによる株価取得方法(お礼500枚)

Yahooファイナンスの株価時系列データから東証1部の全銘柄の株価データをVBAを用いてエクセルに取り込みたいのですが、いっぺんに取り込むことができません
1銘柄の時系列データをVBAで取り込むことはできるのですが、1回1回そのようにしていたらとてつもなく時間がかかってしまいます…
どのようにすればいっぺんに取り込むことができるのでしょうか?教えてください。
(1枚のシートに1銘柄のデータをいれたいと思っています。またVBAにこだわってはいません。とにかくエクセルに比較的時間をかけずにデータを取り込めることができれば十分満足です)

閲覧数:
3,363
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

kur********さん

2008/5/314:13:50

時系列データとして全銘柄ですか?
ヤフーのファイナンスサイトで、全銘柄データが時系列ではなく、前日終値として準備されています。
ここから、市場を東証として銘柄コードを選択抽出すれば連続処理の元データとして利用できます。

データのセットで時間短縮を図るには、直接セルにデータ登録するより
一旦配列にセットしておき、その配列をシートに代入する形式が最短時間で処理できる。

これは、CSVファイルをエクセルで開いた時一瞬でセルに展開されていることからも判ります。
配列は2次元とし
aryA(n, m)
nは、行
mは列を表します。
100行(タイトル込み)7列のデータを配列にセットした時のシートへの展開は

Dim r As Range

Set r = Worksheets("Sheet1").Range("A1:G100")
r = aryA

で完了する。

その他時系列データが、1回でとれるサイトを利用する手もある
ヤフーは50行単位だけど、サイトによっては1年単位もある。
http://msvc.web.fc2.com/****.csv

http://k-db.com/site/jikeiretsu.aspx


データがCSVなのでそのまま配列にセットしてシートに代入すれば済む

この質問は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる