投稿日:2024年4月1日 | 最終更新日:2024年5月1日

株価周りのVBA関数の需要があるようなので銘柄取得関数を作りました。。
マネーフォワードも愛用していますが、自分なりのカスタマイズした管理帳簿も欲しくてExcelも活用しています。
目次
VBA 日本株の銘柄名取得関数
- VBAで自作関数を使うための基礎知識(事前準備)
- VBA使用にはExcelファイルの拡張子をxlsm(マクロ有効ブック)にして保存する必要がある
- Excelのシートタブ上で右クリックして「コードの表示」を選択すればコード入力画面が開く
- コード入力画面左上の「プロジェクト」→「Microsoft Excel Objects」を選択して右クリックして「挿入」→「標準モジュール」を選択すると「Module1」が増える
- 「Module1」をダブルクリックしてActiveにして右のコード記載エリアに自作関数を記載する

- Excel VBAで、指定証券コードの銘柄名を取得する関数
- 2024/03/23時点でのWindows11、Office2019上での動作確認済み
- どの環境でも動作保証してるわけではないので、使用は自己責任で
- コード入力画面に下記をコピペしたらOK
- 2024/03/23時点でのWindows11、Office2019上での動作確認済み
Function STOCKNAMEJP(code)
str_url = "https://www.google.com/finance/quote/ " + CStr(code) + ":TYO?hl=ja"
On Error Resume Next
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", str_url, False
.send
Set stm = CreateObject("ADODB.Stream")
stm.Type = 1
stm.Open
stm.Write .responseBody
stm.Position = 0
stm.Type = 2
stm.Charset = "UTF-8"
buf = stm.ReadText(-1)
End With
Err.Clear
On Error GoTo 0
buf = Mid(buf, InStr(buf, "<div class=""Q8lakc W9Vc1e""><div class=""ZvmM7"">") + Len("<div class=""Q8lakc W9Vc1e""><div class=""ZvmM7"">"))
buf = Left(buf, InStr(buf, "</div>") - 1)
buf = Replace(buf, ",", "")
STOCKNAMEJP = buf
End Function
- 関数がどうやって銘柄名を取得しているかの説明
- 関数内でGoogle Financeにアクセスして、取得したページ情報から銘柄名を抽出している

関数の使用例
- 上記関数を定義したxlsmファイルで通常のエクセル関数(SUM等)と同じように呼び出すだけ
- 関数の引数には証券コードを入力すればよい

コメント
コメント一覧 (3件)
貴重な情報ありがとうございます。株価と共に配当利回りも取得したいのですが
可能でしょうか。
配当利回り取得関数を作ってみました。
Googleファイナンスからはうまく取得できなかったので、Yahooファイナンスから取得するようにしています。
自己責任でご確認ください。
https://donichi.jp/1544/
役立ちました。ありがとうございます。