もしものときの株価自動取得VBAコード(旧低速版)です
本記事は株価取得VBAコードの旧記事となっており、
ヤフーファイナンスのHTMLフォーマットが変更になった際、
新VBAコード(高速化・米国株対応・投信対応)が、
正常動作しなくなった場合に備えて、用意してあるものです。

内容としては、エクセルシートに記載してある銘柄コードを元に、
ヤフーファイナンスの株価情報を読み込んで、
そこから最新株価を取得しています。
Sub ボタン1_Click()
Dim url As String
Dim cd As String
Dim sosa_sh As Worksheet
Set sosa_sh = ActiveSheet ' 現在のシートを退避
gyo = 8 ' 8行目から株価取得開始
' コード記載がなくなるまで繰り返す
Do While sosa_sh.Cells(gyo, 4) <> ""
' コード取得してURL設定
cd = sosa_sh.Cells(gyo, 4)
url = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=" & cd & ".T"
' ヤフーファイナンスの株価情報を読み込み開始
Workbooks.Open Filename:=url
' 目印の"詳細情報"の行位置から株価位置を取得
kabugyo = 1
Do While ActiveSheet.Cells(kabugyo, 1) <> "詳細情報"
kabugyo = kabugyo + 1
Loop
kabugyo = kabugyo - 1
' 取引があった時、当日終値を取得
If ActiveSheet.Cells(kabugyo, 3) <> "---" Then
sosa_sh.Cells(gyo, 5) = ActiveSheet.Cells(kabugyo, 3)
Else ' 取引がなかった時
ActiveWorkbook.Close savechanges:=False ' 読み込んだページを一旦閉じる
' URLを履歴にして、再度読み込み
url = "http://stocks.finance.yahoo.co.jp/stocks/history/?code=" & cd & ".T"
Workbooks.Open Filename:=url
' 目印の"調整後終値*"の行位置から前回株価位置を取得
kabugyo = 1
Do While ActiveSheet.Cells(kabugyo, 7) <> "調整後終値*"
kabugyo = kabugyo + 1
Loop
kabugyo = kabugyo + 1
sosa_sh.Cells(gyo, 5) = ActiveSheet.Cells(kabugyo, 7)
End If
ActiveWorkbook.Close savechanges:=False ' 読み込んだページを閉じる
gyo = gyo + 1 ' 次の行の株価取得へ
Loop
End Sub
ここでシートに合わせて、カスタマイズする必要があるポイントは3つ。
まずは赤色数値の8という数値です。(1箇所)
これはエクセルシートで、
銘柄コードの記載が始まっている行を設定します。
上のエクセルシートでいうと、
先頭銘柄のブックオフのコード3313が、
シートの8行目から書かれているので8を設定してます。
次に青色数値の4という数値です。(2箇所)
これはエクセルシートで、
銘柄コードの記載が始まっている列を設定します。
列の場合は、A列=1,B列=2,C列=3・・・というように数えます。
上のエクセルシートでいうと、
銘柄コードが書かれているのがD列なので4を設定しています。
最後に水色数値の5という数値です。(2箇所)
これは取得した最新株価を書き込む列を設定します。
A列=1,B列=2,C列=3・・・というように数えますので、
上のエクセルシートでいうと、
最新株価はE列に書き込むので、5を設定しています。
注意1:
1銘柄更新するのに5~10秒程度かかります。
数十銘柄持っていて、そんなの待ってられないという方は、
専用ソフトなど他の方法を探してみて下さい。
注意2:
銘柄コードが空白になっていることを条件に
株価取得を終了するようになっています。
ですので、売却したりして銘柄を削除する場合は、
空白行にせずに、行削除等で上に詰めるようにしてください。
注意3:
ヤフーファイナンスのフォーム自体がいつか変わった場合、
このVBAコードでは使えなくなってしまうかもしれません。
その時は、新フォームに対応したものを紹介するつもりです。
注意4:
マクロ釦の作り方や、VBAコード記述のやり方など、
エクセル操作については、
書籍・初心者向けサイト等で調べるようにして下さい。
PERやPBRなどの指標情報を取り込みたい方は、
コチラの記事も参考にしてみて下さい。
ヤフーファイナンスから株式のPERやPBRなどの指標情報をエクセルに取り込む
-
最近とてもお気に入りの保有銘柄の管理サイトがあります2014/01/09
-
投信積立グラフ作成ソフト(2013/12/21UP分)の不具合のお知らせ2013/12/28
-
投信積立グラフ作成ソフト(エクセルファイル)を紹介します。(ダウンロードできるよ)2013/12/21
-
最新株価&投信基準価額を自動取得できるエクセルシートを作りました。(ダウンロードできるよ)2013/12/03
-
もしものときの株価自動取得VBAコード(旧低速版)です【現在閲覧中】2013/10/13
-