ChatGPT × Excel VBA:オルカンの基準価額を自動取得するマクロを作ってみた

この記事は約4分で読めます。

はじめに

投資信託の基準価額を日々チェックするのは面倒なもの。特に「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と少しの工夫で大きな効率化につながります。

コメント

タイトルとURLをコピーしました