ChatGPTはそれなりの答えをあっさり回答してくれる素晴らしいAIです。プロンプトを使えば答えてほしいようにコントロールできますし、インターネットで検索するよりも欲しい情報がすぐに分かりやすく手に入ります。
プログラミングをしていると、この書き方どうだったっけ?とド忘れすることがたまにありますが、どんなプログラミング言語やフレームワークでもサクッと答えてくれます。
この記事では、ChatGPTでプログラミングを爆速化する方法と注意事項について紹介します。
1. プログラムの書き方を普通に聞く
ChatGPTに普通に聞いたら普通に答えてくれます。以下はVSTO (Visual Studio Tools for Office)を使ってc#でExcelアドインを開発するコードです。
今となってはどこにも使われていないかもしれない(メインフレームのアプリ開発では今も使われているのかな?)アセンブリだってサクッと答えてくれます。
2. コードをコピペしてバグを見つけてもらう
コンパイルエラーが発生したけれど、何が原因か分からない…。そんな時はソースコードをコピペして、どこが悪いのか教えてもらいましょう。以下の例は、DisplayGridlinesプロパティのタイプミスでDisplaygridlinesになってしまったコードをChatGPTに修正してもらっています。このバグに正しく気付いて、タイプミスを修正してくれました。
3. コードをコピペして修正してもらう
もはや考えることすら面倒になってしまいそうな時は、ソースコードをコピペしてChatGPTに変更してもらうこともできます。DisplayGridlinesプロパティをFalseからTrueに変更するのが正解ですが、「メモリ線を表示するソースコードに変更して」というリクエストに対して適切に回答しています。
4. コードを説明してもらう
他人が書いたコードを解読するのってとっても大変です。それを修正するのはもっと大変ですが、まずは解読する作業を効率化することが大切です。コードをコピペして、どんな動作をするコードなのか解説してもらうことができます。以下のコードはVBAで、日付の判定・セル書式を太字に変更・ソートを行います。こんなコードも、どんな動作をするのか簡潔に説明してくれます。
5. プロンプトを使って反復してコードを生成させる
プロンプトを使うことでChatGPTに答えて欲しい内容を指示することができます。
プロンプトは以下の通りです。
あなたはVBAプログラマです。あなたの仕事は、私のニーズに合わせて実行可能なVBAソースコードを生成することです。次のプロセスに従ってください。
- 最初に、どのようなVBAソースコードを生成して欲しいか私に質問してください
- 私の入力に基づいて、以下の3つを回答してください。
a) 修正したVBAソースコード。書き直したVBAソースコードを提示してください。実行可能なVBAコードにしてください。必要に応じて補足説明をVBAコード内にコメントして記載してください。
b) 改善するべき内容を提案してください。コードに含めるべき内容や、機能追加するべき内容などを提案してください。
c) 改善する内容を私に提案してください。- このプロセスは、私があなたに追加情報を提供し、あなたが実行可能なコードを更新し、私が完了というまで続けます。
このプロンプトは以下の動作をします。
- ①欲しいコードを人間に質問する
- ②ChatGPTがコードを提示する
- ③提示したコードの改善案をChatGPTが提案する
- ④改善するべき内容を人間に質問する
- ⑤人間が完了と言うまで反復する
以下は実行例です。ちゃんと改善内容を提案してくれています。
最後に注意事項:ある程度ソースコードが読めないとバグに気付けない
ChatGPTはそれなりに動作するコードを生成してくれますが、やはりバグはあります。以下はA列の日付が変わるたびに太字に変えるというソースコードですが、A列に時刻が含まれると全て太字になってしまいます。
実行すれば気づけることですが、全てのパターンを実行してテストすることはとても工数がかかります(それをやるべきという意見もあると思いますが、ソースコードを読んでバグに気付けるようになるべきで、これができるとかなりの効率化が見込めます)。