はじめに
投資信託の基準価額を日々チェックするのは面倒なもの。特に「eMAXIS Slim 全世界株式(オール・カントリー)」(愛称:オルカン)は人気銘柄で、日々の動きを確認・記録している方も多いのではないでしょうか。
そこで今回は、ChatGPTを使って、オルカンの最新基準価額をExcelに自動で取り込むマクロ(VBA)を作成する手順をご紹介します。
自分で調べてコードを書くより、AIに任せた方が早いし確実だった……そんな実体験に基づく内容です。
ChatGPTへの指示(プロンプト)
ChatGPTに以下のような条件を与え、VBAコードを生成させました:
以下のExcel VBAのコードを書いてください。
1、HTTPリクエストを送ってCSVを取得
2、HTTPリクエストの送信先は「https://www.am.mufg.jp/fund_file/setteirai/253425.csv」
3、CSVファイルの最下行のデータを、今開いているExcelファイルのA1セルからカンマで分割して書き込む
ChatGPTが生成したVBAコード
ChatGPTが提示したコードは以下でした。コードを標準モジュールに貼り付けて実行したところ、問題なく動作しました。さらに、エラー処理やユーザーエージェントの設定まで自動で含まれていたのには驚きです。
いやあ、地道に調べ、試行錯誤したのは何だったのかという感じです。
Sub GetAndSplitLastCSVLine()
Dim http As Object
Dim url As String
Dim responseText As String
Dim lines() As String
Dim lastLine As String
Dim values() As String
Dim i As Long
‘ 1. ダウンロードするCSVのURL
url = “https://www.am.mufg.jp/fund_file/setteirai/253425.csv”
‘ 2. HTTPリクエストを送信
Set http = CreateObject(“MSXML2.XMLHTTP”)
On Error GoTo ErrorHandler
http.Open “GET”, url, False
http.setRequestHeader “User-Agent”, “Mozilla/5.0” ‘ 一部403回避のため
http.Send
‘ 3. ステータスが成功(200)の場合
If http.Status = 200 Then
responseText = http.responseText
‘ 改行で分割して配列に格納
lines = Split(responseText, vbLf)
‘ 4. 最下行のデータ(空白行は無視)
Dim j As Long
For j = UBound(lines) To 0 Step -1
If Trim(lines(j)) <> “” Then
lastLine = Trim(lines(j))
Exit For
End If
Next j
‘ 5. 最下行をカンマで分割
values = Split(lastLine, “,”)
‘ 6. A1から横方向に書き込み
For i = 0 To UBound(values)
ActiveSheet.Cells(1, i + 1).Value = values(i)
Next i
Else
MsgBox “HTTPリクエスト失敗: ステータスコード = ” & http.Status, vbCritical
End If
Exit Sub
ErrorHandler:
MsgBox “エラーが発生しました: ” & Err.Description, vbCritical
End Sub
コード解説:主な処理の流れ
1.HTTP通信によるCSV取得
MSXML2.XMLHTTPを使ってCSVデータをダウンロード。403エラーを回避するためにUser-Agentを偽装。
2.改行でデータ行を分割
CSV全体を行ごとに分割し、末尾からループして空白でない最後の行を取得。
3.データの整形とExcel書き出し
取得した最下行をカンマ区切りで分割し、ExcelのA1から横方向に値を入力。
4.エラー処理
通信エラー時にはメッセージ表示する簡単な例外処理付き。
実行結果
実行後、オルカンの最新基準価額を含むCSVの最終データ行が、A1セルから横一列に表示されました。
WebスクレイピングやAPI連携に不慣れな方でも、ChatGPTを使えばここまで自動化できるという良い実例です。
注意点・今後の展望
- 本マクロはWebページ構成やCSVファイルの仕様変更に依存しています。URLが変わったり、データ構成が変わった場合は動作しなくなる可能性があります。
- CSVファイルのURLがHTTP(暗号化されていない)である点には注意してください。
- 複数銘柄への対応、定期的な取得、記録保存などへの拡張も可能です。
まとめ
ChatGPTを活用すれば、面倒なExcelマクロも一瞬で自動生成。
「これ、昔は何時間もかけて手作業でやってたのに…」と思わず苦笑してしまいます。
投資管理に限らず、ルーティン作業の自動化はAIと少しの工夫で大きな効率化につながります。

コメント