• こんにちは。

    いかにも真夏という日々が続いておりますが、いかがお過ごしでしょうか

    筆者は夜の暑さに耐えかねて寝不足の日々です

  • はじめに

今回も引き続き、ChatGPTについてです

前回はChatGPTを使って業務を改善する案としてメールの文面の作成を行ってみましたが、今回はコーディングをさせてみようと思います

  • 今回やりたいこと

ちょうど手元にAI向きの作業予定がありました

とある新しいシステムを構築するために、エクセルでデータベースのテーブル定義書を作成したのですが、これをもとにCreateTableSQL(以下Create文)を作らなければならない、というものです

作業自体は単純な反復になるのが予想されていたのですが、テーブル数が20弱あり、面倒で後回しにしていた作業です

上記のようなテーブル定義が20シートほどにずらっと書かれたエクセルから、どうにか手軽にSQLをつくれないものか・・・というのを相談してみました

  • 方法について相談する

ChatGPTにはファイルがアップロードできないため、まずは漠然とした質問をしてみました

 

以下、SQLの書き方についての解説がつらつら続きます

これはちょっと求めていたものとは違います。筆者は楽に一気に作りたいのです

 

 

Pythonの実際のコードを提示しつつ、自動作成のルートを示してくれました。良さそうですが、Pythonなので誰でも簡単に使いやすいとは言い難いのと、テーブル定義書と別途Pythonのコードを管理しないといけないのがちょっと面倒です

そこでさらに要求してみました

 

そうそう、それが欲しかったんだよ、というマクロのコードが提示されました

マクロ(VBA)で自動生成のルートで進めてみることにします

  • 具体的な作業内容を伝える

VBAのコードを確認したところ、ChatGPTはファイルそのものを見ていないので当たり前ですがエクセルの記載内容(定義の列位置など)に即していないコードだったので、もう少し補足情報を伝えます。

この辺りは実際のファイルを渡せるようになると楽になりそうですが、今は文字で伝えるしかありません

 

生成されたVBAを実行したところ、指定したシートのCreateTable文が自動で作成できました

さらにちょっと欲張って、定義書に記載があるインデックスの作成用のSQLも作れないか試してみます

 

VBAが修正されましたが、「インデックスの定義が記載されている」という指示が曖昧過ぎて、I,J,K列の扱いが正しくありません

 

どうもうまく伝わりません。文字で伝える難しさがのしかかってきます

人間なら、ああそういうことですね、と察してくれそうですが、ファイルを実際に見せれないこともあってうまい言い回しを考える手間をかけるなら、インデックスだけなら自分でSQLを作る方が早そうだなとジャッジしました

 

さて、インデックスについて諦めたところで、最後にファイル内のシートを一気に処理するように書き換えてもらうことにします

 

提示されたVBAを実行すると、20個のテーブルのCreate文が一気に作成できました

これでやりたかったことはほぼ出来ました

  • まとめ

ここまでの所要時間は約20分。慣れればもっと早くなりそうです

手動でCreate文を作成した場合、1テーブルにつき3分程度かかるとして、1時間程度かかりますので、3分の1に短縮できたことになります

自分でコーディングしたとしても、普段からVBAをバリバリ書いているわけではない筆者ですと、20分では難しいかなという印象ですので、時短に成功したと言っていいかと思います

VBAの知識があまりない人でも今回のようなやり方で有ればマクロを作成することもできるのは大きなメリットではないでしょうか

ChatGPTはどう指示を伝えればどう返してくるかというところはコツが要りそうですが、それをつかんでしまえば、人間側は仕様の検討に専念できるのはかなりありがたいです 

  • AIに仕事が奪われる、ということがよく言われますが、AIの得意な分野、人間の得意な分野というのがより明確化されていくのかなと筆者個人は思っています

    便利な道具として、振り回されずに共存していきたいものです 

    ここまでお読みいただき、ありがとうございました