STUDIOUS 立会外分売 落選
本日は、STUDIOUSの立会外分売に申し込んでみましたが、見事に落選となりました^^でも、やっぱり欲しかったので、通常取引で購入致しました。買った直後に下落してしまい「これは失敗したかな?」と思いましたが、最終的には上昇してひと安心。平均取得額はかなり上がってしまいましたが(940円→1368円)、ここはまだまだ伸びてくれるものと信じてます!
と言いつつ前回940円で購入した200株は1300円ぐらいで既に半分売ってしまっているのですが^^
【取引実績2016年5月11日】
◆買付
2158:UBIC(追加)
3415:STUDIOUS(追加)
◆売却
なし
コックス株主優待&本日の株式取引(5月10日)
こんばんは。もうこんな時間になってしまったので、本日は簡単に。。
2日連続STOP高だった、データセクション。。とりあえず半分だけ利確しました。でも、本日のほぼ底値で売却することに(泣)
本日の高値:1240円 売却:1065円。ちょっと損した気分です^^
【取引実績2016年5月10日】
◆売却
3905:データセクション(一部)
◆買付
なし
そして、優待戦士の『コックス』さんから、株主優待券が届いてました。
******************
9876:(株)コックス
<2月末日優待>
株主優待券
100株以上:2,000円分
500株以上 :4,000円分
1,000株以上 :6,000円分
2,000株以上 :10,000円分
******************
100株所有の2名義分で計4,000円相当の株主優待券です。また、そのうち買いに行きましょっと♪
現在の華麗なる優待戦士たちはこちら↓
エクセルで株価取得ソフト なんとか動作した^^
この週末は特に大きな予定もなく時間があったので、いつかはやってみようと思っていたエクセルVBAでの株価取得を頑張ってみました。
上記、「株価更新」ボタンを押下して、背景黄色部分の「株価、1株配当、PBR、PER」を自動取得。データの取得元は、お馴染みのヤフーファイナンスで、下記、赤枠で囲った部分になります。
この手のソフトについては、ネット上にたくさんフリーソフトとしてアップされておりますので、私も今まではそれらの一つを利用しておりました。私は資産管理をエクセルで行っておりまして、そのフリーソフトで各種指標値を取得し、結果の部分をコピーして自分の管理しているエクセルへ貼り付けておりました。まあ、これでもそんなに手間ではないのですが、どうせならボタン一発で、直接更新できた方が便利かなということで、今回チャレンジ!あとは、エクセルVBAのお勉強も兼ねてます。
以下、出来上がったVBA Codeです。
Sub Click_株価更新()
Dim http As Object
Dim sh_control As Worksheet
Dim st_url As String
Dim st_code As String
Dim i_check_row As Integer
Dim i_max_row As Integer
Dim i_code_column As Integer
Dim i_kabuka_column As Integer
Dim i_haito_column As Integer
Dim i_pbr_column As Integer
Dim i_per_column As Integer
Dim st_search_value As String
Dim reg_exp As RegExp
Dim mc As MatchCollection
' ----------------------------------------
' [設定値] ★エクセルシートの内容に合わせてここを変更(A列=1)
i_code_column = 3 ' 株価コードの列
i_kabuka_column = 5 ' 現在株価の列
i_haito_column = 8 ' 1株配当の列
i_pbr_column = 15 ' PBRの列
i_per_column = 16 ' PERの列
i_max_row = 10000 ' 株価のチェックはこの行まで
' ----------------------------------------
Set sh_control = ActiveSheet ' アクティブシートの設定
Set reg_exp = CreateObject("VBScript.RegExp") ' 正規表現オブジェクト生成
Set http = CreateObject("MSXML2.XMLHTTP") ' HTTPオブジェクト生成
i_check_row = 1
Do While i_check_row < i_max_row
' コード取得してURL設定
st_code = sh_control.Cells(i_check_row, i_code_column)
' 対象外行(コード以外)についてはスキップする
If Not IsNumeric(st_code) Then GoTo Continue
If Len(st_code) <> 8 Then
'国内株式のULR設定
st_url = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=" & st_code & ".T"
Else
'投資信託のULR設定
st_url = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=" & st_code
End If
' HTMLデータを取得
http.Open "GET", st_url, False
http.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"
http.Send
If Len(st_code) <> 8 Then ' 国内株式
' [株価]
' 正規表現で文字列を抽出1
reg_exp.Pattern = "stoksPrice"">.*</td>"
Set mc = reg_exp.Execute(http.responseText)
If mc.Count > 0 Then
st_search_value = mc.Item(0)
' 正規表現で文字列を抽出2
reg_exp.Pattern = "[0-9]+,?[0-9]+"
Set mc = reg_exp.Execute(st_search_value)
If mc.Count > 0 Then
' 抽出した株価をエクセルシートへ反映
sh_control.Cells(i_check_row, i_kabuka_column) = CDbl(mc.Item(0))
End If
End If
' [配当]
' 正規表現で文字列を抽出1
reg_exp.Pattern = "dps_2.*</a>"
Set mc = reg_exp.Execute(http.responseText)
If mc.Count > 0 Then
st_search_value = mc.Item(0)
' 正規表現で文字列を抽出2
reg_exp.Pattern = ">.*</a>"
Set mc = reg_exp.Execute(st_search_value)
If mc.Count > 0 Then
st_search_value = mc.Item(0)
' 正規表現で文字列を抽出3
reg_exp.Pattern = "[0-9]+\.?[0-9]+"
Set mc = reg_exp.Execute(st_search_value)
If mc.Count > 0 Then
' 抽出した配当をエクセルシートへ反映
sh_control.Cells(i_check_row, i_haito_column) = CDbl(mc.Item(0))
End If
End If
End If
' [PBR]
' 正規表現で文字列を抽出1
reg_exp.Pattern = "<strong>.*\n.*PBR"
Set mc = reg_exp.Execute(http.responseText)
If mc.Count > 0 Then
st_search_value = mc.Item(0)
' 正規表現で文字列を抽出2
reg_exp.Pattern = "[0-9]+\.?[0-9]+"
Set mc = reg_exp.Execute(st_search_value)
If mc.Count > 0 Then
' 抽出したPBRをエクセルシートへ反映
sh_control.Cells(i_check_row, i_pbr_column) = CDbl(mc.Item(0))
End If
End If
' [PER]
' 正規表現で文字列を抽出1
reg_exp.Pattern = "<strong>.*\n.*PER"
Set mc = reg_exp.Execute(http.responseText)
If mc.Count > 0 Then
st_search_value = mc.Item(0)
' 正規表現で文字列を抽出2
reg_exp.Pattern = "[0-9]+\.?[0-9]+"
Set mc = reg_exp.Execute(st_search_value)
If mc.Count > 0 Then
' 抽出したPBRをエクセルシートへ反映
sh_control.Cells(i_check_row, i_per_column) = CDbl(mc.Item(0))
End If
End If
Else ' 投資信託
' [株価]
' 正規表現で文字列を抽出1
reg_exp.Pattern = "stoksPrice"">.*</td>"
Set mc = reg_exp.Execute(http.responseText)
If mc.Count > 0 Then
st_search_value = mc.Item(0)
' 正規表現で文字列を抽出2
reg_exp.Pattern = "[0-9]+,?[0-9]+"
Set mc = reg_exp.Execute(st_search_value)
If mc.Count > 0 Then
' 抽出した株価をエクセルシートへ反映
sh_control.Cells(i_check_row, i_kabuka_column) = CDbl(mc.Item(0))
End If
End If
End If
Continue:
i_check_row = i_check_row + 1
Loop
End Sub
ヤフーファイナンスから該当銘柄ページのHTMLデータを取得して、正規表現で株価やPBRの文字列を抜き出している感じです。正規表現をあまりよく理解しておらず、かなり強引な方法で行っているので、もっと効率的な方法はあるんでしょうけど、とりあえず動作しているからOKとしようかな。。以下、作成メモです。もし、興味のある方がいらっしゃったらどうぞ♪こんな適当なソースコード、誰も興味ないですかね^^
◆株価取得エクセルの作成方法
[環境]
Office Excel2013
[手順]
1.開発タブの表示
・[ファイル] - [オプション] - [リボンのユーザ設定]で、右側の「開発」にチェックを入れる。
2.参照設定(正規表現)を追加する。
・[Alt] + F11キーを押下して、VBAの画面を表示する。
・[ツール] - [参照設定]で、「Microsoft VBScript Regular Expressions 5.5」にチェックを付ける。
・VBAの画面を閉じる。
3.株価更新ボタンの作成
・[開発タブ] - [挿入]でボタンを選択して、シート上にボタンを配置
・[マクロの登録]ウィンドウが表示されるので、任意のマクロ名(サンプルでは、"Click_株価更新")を設定して、[新規作成]を選択。
・VBAの画面が表示されるので、上記のソースコードをコピー。
・VBAの画面を閉じる。
上記で完成です。
エクセルシートのC列に、株価コードを入れて、手順3で追加したボタンを押下すると、
株価、1株配当、PBR、PERを自動で取得します。
[備考]
株価コードや株価などの位置(列)は、上記ソースコードの[設定値]の部分を修正することで変更可能です。