ChatGPT×VBAの相性いいかも

Artificial intelligence

事の発端は、エクセルのシートA(元データ)とシートB(修正データ)でセルの内容が少しでも異なっている場合、修正後データの該当行をシートC(差分データ)に書き出したい・・!と思ったことでした。

以下のようなイメージです。

ID商品名金額
1みかん100
2りんご120
3ぶどう90
シートA(元データ)
ID商品名金額
1みかん100
2りんご120
3ぶどう200
シートB(修正データ)
ID商品名金額
3ぶどう200
シートC(差分データ)

そこで、慣れないVBAを使って、ネットで拾った情報をツギハギしながら何とか完成させたのですが、いかんせん動作が遅い…。1万行の処理に60分以上かかってしまいました。

原因は内部の3重ループだと分かったのですが、どう改善すれば良いのか自分で調べてもいまいちピンとこず、あまり時間もなかったので、ChatGPT4にダメ元で聞いてみました。

最初はコード全体を貼り付けて漠然と「最適化して」とか「高速化して」と聞いていたのですが、それではこちらの意図通りのコードを書いてくれませんでした。

結局、動作の遅い3重ループ部分だけを切り出した上で、「日本語でコメントを付しながら、配列を使用して処理速度を高速化してください」と聞いてみたところ、ようやく望み通りのコードを書いてくれました。配列を使用してほしいと明記したのがよかったみたいです。

それを動かしてみると、1万行でも90秒で終わるという超高速化が果たされて、とても助かりました(コメントも入っているので、ロジックチェックや自分の勉強にも役立ちます)。

ChatGPTと上手に付き合うためには、やはりきっちり要件を定義し、ピンポイントでやってほしいことを頼むことが重要になります。そういう意味では、新人に丁寧に仕事を教えるときと同じですね。

コメント