ChatGPTでマクロを生成 ~ 複数シートを合体させるマクロの作成

これまでエクセルマクロの学習は、記録マクロから始め、徐々に分岐、繰り返し処理を学ぶのが定番スタイルでした。

それが生成AIの登場で、その学習方法が大きく変わったと感じています。

今では、マクロは生成AIが書いてくれる時代。
マクロを書くよりも生成AIに与える指示書、つまり、プロンプトの書き方が重要になったと感じています。

今回、財務捜査でよく使う、「一つのブックの中に複数あるシートを合体する」という作業について、ChatGPTにマクロを書いてもらいました。

預金口座の合体

会社、家計の経済実態を解明するために、エクセルの複数シートに分けて入力した預金口座データを合体させ、日付順に並び替える場面はよくあります。

預金口座が複数に分かれていても、お金の管理は同じ組織、人物が管理しています。
個々の預金取引を分析することも必要ですが、口座を合体させることで全体のお金の流れを把握することができるようになります。

個人の方でも預金口座を数個持っていることは珍しくありません。
これが会社ともなると、10~20の口座があることもよくあることです。

口座資料がすべて揃っていれば、合体作業は1度で済みますが、五月雨式にデータが集まってくることが実務では一般的です。
これを手作業で合体させることは、面倒ですし、間違いも発生しやすくなります。

マクロを書くには

私が財務捜査で初めてマクロを作成したのは、今回取り上げる「複数シートの合体」です。

預金口座が20程度あり、資金の流れを見るために複数の預金口座シートを合体させる必要がありました。
20くらいであれば、手作業でも可能なように思えますが、これが思いのほか大変な作業。

同じようなデータが並んでいるので、どこまでコピーしたのかわからなくなってきます。
さらに、途中で電話がかかってきたりすると、その時点で中断となります。

民間企業の経理時代にマクロは作成していたので、このマクロ作成はそれほど難しいものではありませんでした。
ただ、初めてマクロを書く方にとっては、ハードルが高いと思います。

このハードルを一気に下げたのがChatGPTです。

ChatGPTの活用

私の場合、マクロの本を読みながら作成しましたが、今ではChatGPTが使えます。
やりたい手順を言語化すれば、使えるマクロを作成してくれます。

今回は、次のようなプロンプトを作成しました。

次の内容で、1つのブックにある複数シートを合体させるVBAを書いて

1 1つのブックに日付順にデータが入力された複数のシートがあります。
2 各シートの内容を1つのシートに合体させます。
3 各シートの1行目には、項目見出しが付いています。
4 1枚目のシートをコピーして、シート名を「合体」と変更します。
5 2枚目以降のシートのデータを「合体」シートの末尾にコピーします。
  このとき、各シートの1行目は項目見出しなので、コピーするのは2枚目以降だけです。
6 すべてのシートのコピーが終わったら、合体シート全体のデータをコピーして同じ場所に値貼り付けをします。
7 最後に合体シートのシートタブを赤色に変更します。

これに対する回答です。

試してみた

テストデータとして、

  • ABC銀行浦和支店 30行
  • DEF銀行大宮支店 14行
  • GHI銀行川越支店 7行

という3つのシートのデータを用意しました。

このブックに対して、先ほどのChatGPTの回答を標準モジュールに貼り付けます。

実行したところ、動作確認ができました。
すべてのシートのデータが「合体」シートに貼り付いています。

あとは、これを日付順に並び替えたり、金額の最大値を検索するなどして、データ解析を行うことができるようになります。

本日のまとめ

今やエクセルマクロは、生成AIに書いてもらう時代になったように思います。

今回ChatGPTが書いたマクロを読むと、

  • 「合体」シートがすでに存在する場合は削除

といったちょっとした運用上の配慮もされていることが分かります。

もちろんすべてが生成AIで対応できるわけではありませんが、使わないという選択肢はないように思います。

マクロを書くスキルよりも、生成AIに向けたプロンプトを書く技術の方が重要になってくる感じがします。