赤嶋情報

アニメの感想、レビュー。ゲームのレビュー、攻略。たまに、経済や旅行ネタ。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop
世界の株価指数やアメリカ上場の株式の株価を自動的にダウンロードする方法を紹介します。excel vba内でURLDownloadToFile APIを使ってダウンロードする方法です。

概要
米国ヤフーファイナンスのデータをマクロを使ってダウンロードする方法です。symbol、startdate、enddateを入力すると、保存フォルダにデータがダウンロードされます。

米国yahooからDL


米国ヤフーファイナンスのデータ
米国ヤフーファイナンスから、世界の株価指数をダウンロードすることができます。ヒストリカルデータをcsvファイルでダウンロードすることができるで、日本のヤフーファイナンスより、はるかに使い勝手がいいです。

マクロ
URLDownloadToFile APIを使ったマクロを作ってみました。以下のコードがそのマクロです。「C:\worldindexdata」にデータがダウンロードされます。ダウンロードされるファイル名は「Symbol.csv」です(SymbolはA列のコード名。^225.csvなどというファイル名で保存されます。)。"Sheet1"のA列にSymbol、C列にstartdate、D列にenddateを入力します(1行目は項目名を入れてます)。
※マクロの使用は自己の責任において行ってください。

-----------------------------------------------------------------------------
'URLDownloadToFile API from URLMON.
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long


Sub download()

'Symbol
Dim symbol As String

'データ取得開始日
Dim s_date As Double
Dim s_yyyy As Integer
Dim s_mm As Integer
Dim s_dd As Integer

'データ取得終了日
Dim e_date As Double
Dim e_yyyy As Integer
Dim e_mm As Integer
Dim e_dd As Integer

'最終行
Dim maxrow As Integer
maxrow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To maxrow

symbol = Worksheets("Sheet1").Cells(i, 1)

s_date = Worksheets("Sheet1").Cells(i, 3)
s_yyyy = Year(s_date)
s_mm = Month(s_date) - 1
s_dd = Day(s_date)

e_date = Worksheets("Sheet1").Cells(i, 4)
e_yyyy = Year(e_date)
e_mm = Month(e_date) - 1
e_dd = Day(e_date)

Const y_usaURL = "http://ichart.finance.yahoo.com/table.csv?s="
Dim strURL As String
Dim strFNAME As String 'ダウンロード先(パス+ファイル名)
Dim returnValue

'URL
strURL = y_usaURL & symbol & "&d=" & e_mm & "&e=" & e_dd & "&f=" & e_yyyy & "&g=d&a=" & s_mm & "b=" & e_dd & "&c=" & e_yyyy & "&ignore=.csv"

'ファイル名をブックのパス+test.htmlとする
strFNAME = "C:\worldindexdata\" & symbol & ".csv"

'URLDownloadToFile API をコールする
returnValue = URLDownloadToFile(0, strURL, strFNAME, 0, 0)

Next

End Sub
-----------------------------------------------------------------------------

'URLDownloadToFile API from URLMON.
の下にあるコードが「URLDownloadToFile API」を使うためのおまじないです。
csvファイルが保存されているURLの後半に「s=」、「d=」などとかいてあります。「=」の後にsymbolや日付などが入るようなURLであるので、この部分を可変にすることで、マクロでダウンロードすることができるようになります。
「g=d」の部分はおそらく、Dailyなどの指定だと思います。したがって、dをwに変換すればweeklyでダウンロードできるようになると思います。
symbolは米国ヤフーファイナンスから探す必要があります。


お断り

マクロの使用は利用者自己の責任において行なってください。マクロを使用した上で生じたトラブルや損失・損害について、私は一切の責任を負いません。


関連記事

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。