みなさん、こんにちは! タカハシ(@ntakahashi0505)です。
AIの進化によって、プログラミングの仕方が大きく変わりつつあります。
そもそも、プログラム自体を生成AIにつくってもらう…それがまさに実現しています。前回の記事で紹介させていただいたとおりです。
とはいえ、うまく使わないと思い通りのプログラムをつくってもらえません。
今回は、そのひとつの基本テクニック、命令順を指示してプログラムをつくってもらう方法について解説します。
ということで、今回は「ChatGPTに命令順を指示してプログラムをつくってもらおう」についてお伝えします。
では、行ってみましょう!
ChatGPTによるプログラム作成で起きる問題
「FizzBuzz問題」のような超有名なプログラムであれば、以下のようなプロンプトでもChatGPTはほぼ正確にプログラムを作成してくれます。
VBAでFizzBuzz問題を解くプログラムを作成してください。
しかし、僕らが実務で使うプログラムのほとんどは「名もなきプログラム」。
どういった動作をするものか、説明をする必要があります。しかし、その説明のしかたにも注意が必要だったりします。
たとえば、以下のようなプロンプトでプログラムを作成してもらうとします。
選択範囲を新しいシートにコピーするプログラムをVBAで作成してください。
すると、以下のようなプログラムを生成してくれました。
Sub CopySelectionToNewSheet()
' 新しいシートを作成
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "新しいシート"
' 選択範囲をコピー
Selection.Copy
' 新しいシートに貼り付け
Sheets("新しいシート").Select
ActiveSheet.Paste
End Sub
これで、選択範囲が新しいシートにコピーされるはずですが、困ったことが起きます。
コードを実行しても、新しいシートは作成されるものの選択範囲のデータが正しくコピーされませんでした。
これは、プログラムの手順として、以下の流れが原因です。
- ユーザーがコピーしたい選択範囲を選択した状態でプログラムを実行
- プログラムが新しいシートを作成する
- このときユーザーが選択した選択範囲が解除され、新しいシートのA1セルが選択される
- 現在選択されている範囲(新しいシートのA1セル)の内容が新しいシートに貼付けられる
ChatGPTはおそらくそうであろうプログラムを作成してくれますが、VBAプログラムが新たなシートを作成したときに、選択範囲の変更が起こることを踏まえてくれなかったということです。
命令の順序を工夫して問題を解決する
このような問題を解決するためのひとつの手段が、命令の実行順を明確に指定することです。
具体的には、以下のようにChatGPTに指示を加えて再度プログラムを作成してもらいましょう。
以下のVBAプログラムを作成してください。
1. 選択範囲をコピーして変数に代入する
2. 新しいワークシートを作成する
3. 新しいワークシートのA1セル以降にコピーした選択範囲のデータを貼り付ける
「変数」というのは、一時的にデータを保管する場所のことです。これにより、選択範囲が解除されても、データを保持しておくことができます。
以下がChatGPTが生成してくれたコードです。
Sub CopySelectionToNewSheet()
' 選択範囲をコピーして変数に代入
Dim copiedRange As Range
Set copiedRange = Selection
' 新しいシートを作成
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "新しいシート"
' 新しいシートに貼り付け
copiedRange.Copy Destination:=Sheets("新しいシート").Range("A1")
End Sub
これで、選択範囲が正しく新しいシートにコピーされます。ぜひ試してみてください。
ChatGPTによるプログラム作成の注意点
ChatGPTにプログラムをつくらせるのは非常に便利ですし楽ちんですが、注意も必要です。
言語で伝えきれていないところを、「たぶんこう」ということで埋めてきてしまい、意図とは異なるプログラムが生成されることがあるからです。
そのときは、より具体的に手順や詳細を指示すると、望ましい結果になりやすくなります。
これは上司が部下に業務を指示するときに似ていますね。
十分に正確な指示を与えないと、部下はその「隙間」を独自の方法で埋めようとします。それがとてもうまくいくケースもあれば、そうでないケースもあります。
ですから、部下が良いパフォーマンスを出せるように指示を出すことが上司には求められますよね。
AIの活用もそれと同じと思います。
まとめ
以上、「ChatGPTに命令順を指示してプログラムをつくってもらおう」についてお伝えしました。
引き続き、みなさんがいきいきと学び・働くためのヒントをお届けしていきます。
次回はChatGPTに質問をしてもらっちゃおうという話題をお送りします。
お楽しみに!
この話を耳から聴きたい方はこちらからどうぞ!
連載目次:【初心者向け】ノンプログラマーのChatGPT活用術
プログラミング学習にChatGPTを使いたい、でもいまいちどうやって使ったらいいかわからない…そんな初心者ノンプログラマーのためのChatGPT活用法を紹介していきます。- 初心者ノンプログラマーは有料版のChatGPTを使うべきなの?
- 初心者向け!ChatGPTが常に「中学生にわかる日本語で」回答してくれるカスタム指示の使い方
- ChatGPTにコードを解説してもらう方法とそれが初心者ノンプロに超おすすめの理由
- 基本中の基本!ChatGPTにプログラミングのキーワード解説をしてもらおう
- 学習効果バツグン!ChatGPTにプログラミングのクイズを出題してもらおう
- パッと見で整理&一発理解!ChatGPTに表をつくってもらおう
- 初心者ノンプログラマー必須テク!ChatGPTにエラーの解決方法を教えてもらおう
- 意外と使えるハック技! ChatGPTにフローチャートをつくってもらおう
- 使わない手はない!初心者ノンプロのためのChatGPTをつかったプログラム作成法
- ChatGPTに命令順を指示してプログラムをつくってもらおう
- 超便利テク!プロンプトがうまく書けないなら、逆にChatGPTに質問をしてもらっちゃおう
- Excel&スプレッドシートのプログラミングに超便利!ChatGPTのファイルアップロードを活用しよう