[Excel VBA]米ドル→日本円の為替レート現在値の取得方法

投稿日:2024年1月7日 | 最終更新日:2024年1月7日
土日パパ

Excelで資産管理帳簿をつけていて、米国ETFの為替を考慮した現在価格を自動で取りたくなったのでVBA関数を作りました。
マネーフォワードも愛用していますが、自分なりのカスタマイズした管理帳簿も欲しくてExcelも活用しています。

目次

VBA 米ドル→日本円の現在レート取得関数

  • VBAで自作関数を使うための基礎知識(事前準備)
    • VBA使用にはExcelファイルの拡張子をxlsm(マクロ有効ブック)にして保存する必要がある
    • Excelのシートタブ上で右クリックして「コードの表示」を選択すればコード入力画面が開く
    • コード入力画面左上の「プロジェクト」→「Microsoft Excel Objects」を選択して右クリックして「挿入」→「標準モジュール」を選択すると「Module1」が増える
    • 「Module1」をダブルクリックしてActiveにして右のコード記載エリアに自作関数を記載する
Module1追加時の画面
  • Excel VBAで、米ドル→日本円の現在レートを取得する関数
    • 2024/01/07時点でのWindows11、Office2019上での動作確認済み
      • どの環境でも動作保証してるわけではないので、使用は自己責任で
    • コード入力画面に下記をコピペしたらOK
Function RATEUSD2JPY() As Integer
    str_url = "https://www.google.com/finance/quote/USD-JPY?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=""YMlKec fxKbKc"">") + Len("<div class=""YMlKec fxKbKc"">"))
    buf = Left(buf, InStr(buf, "</div>") - 1)
    RATEUSD2JPY = Val(buf)
End Function
  • 関数がどうやって現在の為替レートを取得しているかの説明
    • 関数内でGoogle Financeにアクセスして、取得したページ情報から現在の為替レートを抽出している

関数の使用例

  • 上記関数を定義したxlsmファイルで通常のエクセル関数(SUM等)と同じように呼び出すだけ
使用例) C2セルに関数を入力、C2セル上に現在のレートが表示される(1ドル=145円)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次