こんにちは。PS事業部のしゃるたんです。
今回は本業のプログラミング生成について検証していきたいと思います。
はじめに
最近、Dartを覚えましたが、まだまだ検証するだけの力量が身についていないので、今回は得意のAccess-VBAでチャレンジさせて下さい。
Accessはデータベース、フォーム(画面)、モジュール(プログラム)が三位一体となった超便利なツールで、業務支援ツールなどの開発に向いています。
せっかくなのでChatGPTにAccessの素晴らしさを紹介してもらいましょう。
ChatGPTにAccessの素晴らしさを聞いてみた
さて、私のAccess愛が伝わったところで検証に入りましょう (≧▽≦)ワッフ-イ
生成AIを使って、不具合のあるプログラムを修正
先ずは不具合があるプログラムを修正してくれるのか確認してみます。
次のプログラムは 1+2+3+...+32767を計算して結果を表示するプログラムです。
このプログラム、実はコンパイルエラーが発生しない、いわゆる論理エラーとなるケースです。実行すればオーバーフローとなるので直ぐに原因は分かりますが、プログラムを見ただけでは分かりづらいです(-ω-)/
<実行時のエラー>
原因は、整数型の範囲は32766までなので、in_Countの型をIntegerからLongなどに変更すれば解決ですが、ChatGPTは解決できるのでしょうか。(≧▽≦)ガンバレ!
ChatGPTにプログラムの不具合原因はわかるのか?
~~以下略
残念ながらプログラムのエラー箇所は検知されませんでしたが、原因と対処法の一番最初に変数のオーバーフローが出てきました。(^^)/サスガ!
簡単なプログラムでも論理エラーの検知は容易ではないですね。
生成AIを使って、プログラムの作成
お次はプログラムの作成をお願いしたいと思います。
何ができるかな? よし暇つぶしにちょうどいい、しりとりを作ってもらおう!
早速、しりとりのプログラムを発注 ♪ (*‘ω‘ *) ♪
ChatGPTはしりとりのプログラムをVBAで作れるか
凄い!ちゃんとプログラムができている。
さっそくこちらのプログラムをコピぺして実行してみました。
しりとり(私)⇒りんご(相手)⇒ごりら(私)⇒(相手)ごりら??
あれ? なんかおかしい。そしてこのプログラム止められない。強制終了せにゃ
ChatGPTが作ったプログラムの問題点とは?
よし、プログラムをチェックしてみるか。(・ω・)ヤルゾ
<基本構造はこんな感じ>
①配列変数に単語を登録
②単語を入力する。先制はこちらからか。。ふむふむ
③入力した最後の1文字を取得し、配列変数に格納された単語をチェックし、
最初の1文字目に一致した単語を抽出する
④③で抽出できなければ勝ち、抽出できれば単語入力を行い次のターンへ
さてこのプログラムの一番の問題は、InputBoxで入力した単語をチェックする処理がないということ。そのため、しりとりにならないんですね (・ω・)アレ?
また、playerが入力した単語の語尾を取得していないので、前回computerが指定した単語の語尾を毎回探すことになってしまうという無限ループに陥るようです。
もう少し欲を言えば、しりとりって最後に「ん」を言ったら負けだと思うので、このあたりも組み込んで欲しいかな
ChatGPTに処理の追加を指示をしてみた
そこで次はこんな指示を与えてみた。
~長いので中略~
ちゃんと「ん」がついたら負けというプログラムがセットされました。
ただ、今回もしりとりを続けていくとおかしな結果になっていました。
①しりとり(player)
②りんご (computer)
③ごりら (player)
④ごりら (computer) ・・ゴリラ連呼するなや
⑤らくだ (player) ・・仕方ない、しりとりを続けるか
⑥らっぱ (computer) ・・しりとりせいや!
仕方ない。プログラムの検証じゃ ('ω')ノメンドイ
<修正箇所は2つ>
・2回目のInputBoxの後に下記コードが不足している
lastLetter = Right(playerWord, 1)
・単語リストが見つからなかった時はコンピューターの負けとなる
今回は長くなりそうなので、ここまでとしますが、対話を続けていれば、いずれ正しいプログラムが作れそうですね。
ちなみに「同じ単語を二度使えないような制御を入れて下さい」とお願いすると同じ単語を使った時に「あなたの負けです」という結果が返るようなプログラムを作ってくれました。ただ、上記不備は何度やっても直りませんでした・・・(-ω-)/ウーン
【まとめ】プログラミングはできてるけど、正しいかどうかは確認必須
本日はChatGPTでプログラミングの知識がなくてもプログラムが本当に作れるのか検証してみましたが、いかがでしたでしょうか。
確かにゼロから書くのと比べれば早いのかもしれませんが、正しいプログラムができているのか検証しないと怖いかな・・・というのが私の感想です。
また、複雑なアルゴリズムを要求するような質問でなければ、かなり有効なツールとして使えるように思えました。(・・とはいえプログラム知識は相応に必要なのでは??)
昔からプログラミングの世界では、ネットのソースをコピーしてもいいが、何を書いているか自分で理解してから使えって言われてきましたが、この文化も廃れていくんですかねぇ(/・ω・)/セチガライゼー
その内、「ボクちゃんのChatGPTが言っているのに何が間違っているですか!!」って鼻息荒い新人が現れそうでイヤかも。。(+_+)コワイ
それではまた~~ (≧▽≦)バイバ-イ
この記事を書いた人
【ニックネーム】しゃるたん
【経歴】入社23年目です。最初の10年は大手証券会社の約定報告システムの開発・保守を担当しました。その後、別の大手証券会社で9年ほどシステム部門で社員代替として、ユーザー部門からの相談に乗ってシステム起案したり、ベンダーとの橋渡しを行いました。単にユーザー要求をベンダーへ依頼するということではなく、ユーザー・ベンダーそれぞれとって最適で価値のあるシステムを一緒に考えて提案することが大変でした。
証券業務に約19年間従事した後、開発本部長として自社の開発部門を3年間取り仕切りました。直近では自社サービスの開発に係る業務や、開発の新機軸を探るための検討を行っています。
【得意な言語】VBA、C
【趣味】ゲーム、漫画
【一言】モンハンの新作とドラクエ3のリメイクが楽しみです(≧▼≦)ワッフ-イ