EXCEL【VBAマクロ】ChatGPTが作成した損益計算マクロ

連日ChatGPTに関する新しい話題が出てきて、これまでのAI開発から、一気に飛躍した感じですよね。IT職でもない私まで耳にしているので、これは余程のことでしょう笑。

ブームに乗って、私もChatGPTを使ってみました。有料会員ではないので、無料で出来る範囲で。

試しに、「投資関連で役に立つVBAのコードを教えてください」と問いを投げかけてみたところ、損益計算できるコードを書いてくれましたので、今回はそちらのコードを紹介してみます。※コードの修正無し

概要

購入価格、売却価格、数量を、それぞれInputbBoxに入力し、損益結果をメッセージボックスで表示しています。
それぞれのInputbBoxと結果表示は、以下のようになります。
<入力ボックス>
230509_損益計算_購入価格

230509_損益計算_売却価格

230509_損益計算_数量

<損益結果表示>
230509_損益計算_利益

230509_損益計算_損失

230509_損益計算_損益なし

このマクロで出来ること
・簡単な損益計算
・利益or損失の結果表示




コード【VBAマクロ】

「複数条件で検索」パートのコード

  1. Sub CalculateProfitAndLoss()
  2.     Dim buyPrice As Double
  3.     Dim sellPrice As Double
  4.     Dim quantity As Double
  5.     
  6.     '購入価格、売却価格、数量を入力
  7.     buyPrice = InputBox("購入価格を入力してください")
  8.     sellPrice = InputBox("売却価格を入力してください")
  9.     quantity = InputBox("数量を入力してください")
  10.     
  11.     '損益を計算
  12.     Dim profitLoss As Double
  13.     profitLoss = (sellPrice - buyPrice) * quantity
  14.     
  15.     '結果をメッセージボックスに表示
  16.     If profitLoss > 0 Then
  17.         MsgBox "利益:" & profitLoss
  18.     ElseIf profitLoss < 0 Then
  19.         MsgBox "損失:" & profitLoss
  20.     Else
  21.         MsgBox "損益なし"
  22.     End If
  23. End Sub

コード【VBAマクロ】の解説

ChatGPT先生の作成したコードを解説していきます。
2-4.
Double型で購入価格、売却価格、数量を定義しているようです。

ワンポイント
Double型を使用するメリット
・小数点以下の桁数が多い場合に、より正確な値を扱えること
Double型を使用するデメリット
・Double型を使用した演算は、整数型ほど高速ではないこと

7-9.
InputBoxを使って、上記3項目の入力を行っています。その際、「購入価格を入力してください」のように、どのような作業をするか分かりやすく書いています。

12-13.
次は、計算項目です。新たにProfitLossという変数を作ってDouble型としています。そこに、以下の計算式の結果を入れています。
(売却価格−購入価格)✕ 数量

16-22.
最後に、計算結果をメッセージボックスに表示する項目です。If文を使って、
・0以上であれば「利益 ○○」
・0以下であれば「損失 ○○」
・04であれば「損益なし」
と表示するようになっています。

以上ですが、このマクロどうですか?使い勝手は別として、ものの数秒でこれを教えてくれるChatGPT先生凄いですよね。

感想

今回の質問は、ザックリとしていたため、微妙なマクロしか答えてくれませんでしたが、分野を絞って、条件も細かく定義してあげれば、有用なコードを作ってくれそうな気がします。

ChatGPT先生への質問のことを、プロンプトと呼ぶらしく、有効なプロンプトを書くためのルールなども存在するようです。

ChatGPTでは、プログラムコードを書くだけでなく、コードの意味を教えてくれたり、アイディアも出してくれるので、今後益々お世話になりそうです。