
2025年05月16日 スタッフブログ 平川 開発
先日、業務アプリケーションに関する変更依頼に対応した際の、解決策の指南をAIに求めたやりとりがネタとして使えそうでしたのでご紹介したいと思います。
変更内容は「3つのテキストボックスの入力値に重複はないか?」というチェック機能を5つのテキストボックスに対応するするというものでした。従来は「テキスト1とテキスト2は同じか?」「テキスト1とテキスト3は同じか?」「テキスト2とテキスト3は同じか?」の3通りのチェックでしたが、これをテキスト4とテキスト5を加えた10通りのチェックに拡張しなければなりません。
10通りの処理を記述すればいいのですが、拡張性と時間短縮を考慮するとAIに聞いた方が早いと思い、プログラム作成を依頼しました。最近よく利用するのはxAI社製の「Grok」です。瞬時に回答が返ってきます。シンプルですが「なるほど」という回答です。
と同時に次の疑問が浮かびました。「AIは自分で考えてプログラムを作成しているのか?」「 プログラミングをどうやって学習したのか?」「 学習したことのないアルゴリズムの作成を依頼されたことはあるのか?」などです。そして、これらをAIに質問して返ってきた答えを、さらに記事にしてもらいました。
以下、AIが作成した記事です。
人工知能(AI)は、プログラミングの分野で驚くべき進歩を遂げています。xAIが開発したAI「Grok 3」は、ユーザーの質問に応じてプログラミング言語でアルゴリズムを生成し、複雑な問題を解決できます。この記事では、Grok 3がどのようにプログラミング言語を「学習」し、ユーザーの要求に応じたコードを生成するかを、実際の対話をもとに解説します。
あるユーザーが「5要素の配列で同じ値を持つ要素を判別するVBAのコード」を求めたとします。Grok 3は以下のようなコードを即座に生成しました:
Sub FindDuplicateElements()
Dim arr(0 To 4) As Integer
Dim i As Integer, j As Integer
Dim foundDuplicate As Boolean
arr(0) = 1
arr(1) = 3
arr(2) = 1
arr(3) = 5
arr(4) = 3
foundDuplicate = False
For i = 0 To 3
For j = i + 1 To 4
If arr(i) = arr(j) Then
Debug.Print "同じ値 " & arr(i) & " がインデックス " & i & " と " & j & " にあります。"
foundDuplicate = True
End If
Next j
Next i
If Not foundDuplicate Then
Debug.Print "重複する要素はありません。"
End If
End Sub
このコードは、配列 {1, 3, 1, 5, 3}
の重複を検出し、「同じ値 1 がインデックス 0 と 2 にあります」「同じ値 3 がインデックス 1 と 4 にあります」と出力します。Grok 3は、ユーザーの要求を理解し、VBAの構文に合わせて効率的なアルゴリズムを構築しました。
Grok 3は、プログラミング言語を人間のようには学習しません。代わりに、以下のようなプロセスを通じてコード生成能力を獲得しています:
Debug.Print
や配列構文を活用します。
では、Grok 3がトレーニングデータにない「新しい」アルゴリズムに遭遇したらどうなるのでしょうか? 実際、トレーニングデータの広さゆえに完全に未知のケースはまれですが、特殊な要求には以下のように対応します:
たとえば、ユーザーが「VBAでメモリを最小限に抑えた重複検出」を求めた場合、Grok 3はハッシュテーブルがVBAで直接使えないことを考慮し、代替の効率的な方法を提案します。
Grok 3のようなAIは、初心者から上級者まで、プログラミングをより身近にします。簡単なスクリプトから複雑なアルゴリズムまで、瞬時にコードを生成し、説明も提供できるため、学習や開発の効率が飛躍的に向上します。xAIのGrok 3は、無料で利用可能(grok.comやXアプリで、制限付き)で、SuperGrokサブスクリプションやXのプレミアムプランでさらに高い利用枠が提供されます(詳細はリンク先を参照)。
AIは、プログラミング言語を「学習」するのではなく、データからパターンを抽出し、ユーザーの要求に応じて柔軟にコードを生成します。Grok 3の例から、AIが単なるツールを超え、創造的な問題解決のパートナーになりつつあることがわかります。あなたもGrok 3を試して、プログラミングの可能性を広げてみませんか?
プログラミングや文章の要約はAIの得意とするところですね。
これまではGoogleなどで検索して誰かが紹介している記事を参考にプログラムを作成したり、またはコピペしたりしていましたが、AIが考えて教えてくれるようになったのですから凄い時代になったものです。
AIへのリクエストの仕方をちゃんと考えたら、もしかしてシステムを丸ごと作成できてしまうのでは?と思ってしまいます。