ExcelのVBA(マクロ)をAIチャット(新しいBing・ChatGPT)で自動生成する方法をまとめました。
新しいBingでのコード生成手順
●対象のExcelファイルを用意します。今回は[Sheet1]シートのB2セルからE5セルに以下の表を用意しました。
●新しいBingのチャット画面を表示します。
●以下を送信します。
Excel VBAを組んでください。
「Sheet1」シートのC列からE列の3行目から5行目までのセルについて素数が表示されている場合は背景色を黄色にしてください。また、値が10以上の場合は文字色を赤にしてください。
尚、素数とは2以上の自然数で、正の約数が1と自分自身のみであるものです。
「Sheet1」シートのC列からE列の3行目から5行目までのセルについて素数が表示されている場合は背景色を黄色にしてください。また、値が10以上の場合は文字色を赤にしてください。
尚、素数とは2以上の自然数で、正の約数が1と自分自身のみであるものです。
●以下が返ってきました。
Sub PrimeNumber()
Dim i As Integer, j As Integer
Dim isPrime As Boolean
For i = 3 To 5
For j = 3 To 5
isPrime = True
If Cells(i, j).Value >= 2 Then
For k = 2 To Cells(i, j).Value - 1
If Cells(i, j).Value Mod k = 0 Then
isPrime = False
Exit For
End If
Next k
If isPrime Then
Cells(i, j).Interior.ColorIndex = 6 '黄色'
End If
If Cells(i, j).Value >= 10 Then
Cells(i, j).Font.ColorIndex = 3 '赤'
End If
End If
Next j
Next i
End Sub
●上記のコードをExcel VBA編集画面の[Sheet1]モジュールにコピー&ペーストします。
●F5キーで実行すると以下の結果となりました。
Tips
●Bingのチャット画面で最初に質問される[会話のスタイルを選択]では、[より厳密に]を選択するとスムーズにコードが出力されました。
●時々間違ったコードが表示されるため、実行前にコードを確認して手直しすることが必要です。
ChatGPTでのコード生成手順
●同じメッセージをChatGPTに送ってみました。こちらはフリープランのChatGPT3.5が対象です。
●以下が返ってきました。
Sub HighlightPrimes()
Dim ws As Worksheet
Dim rng As Range, cell As Range
Dim row As Long, col As Long
Dim num As Long
Dim isPrime As Boolean
' 対象のシートを取得
Set ws = ThisWorkbook.Sheets("Sheet1")
' C列からE列の3行目から5行目までの範囲を取得
Set rng = ws.Range("C3:E5")
' 各セルに対して処理を実行
For Each cell In rng
' セルの値を数値に変換
num = Val(cell.Value)
' 値が10以上の場合は文字色を赤に変更
If num >= 10 Then
cell.Font.Color = RGB(255, 0, 0) ' 赤色
End If
' 値が2以上の場合、素数かどうか判定
If num >= 2 Then
isPrime = True
For i = 2 To Int(Sqr(num))
If num Mod i = 0 Then
isPrime = False
Exit For
End If
Next i
' 素数の場合は背景色を黄色に変更
If isPrime Then
cell.Interior.Color = RGB(255, 255, 0) ' 黄色
End If
End If
Next cell
End Sub
●上記のコードをExcel VBA編集画面の[Sheet1]モジュールにコピー&ペーストします。
●F5キーで実行すると新しいBingと同様の結果となりました。
Tips
●ChatGPTでは、適宜コメントを挿入してくれました。
Excel/VBAの応用例など、全般については以下ページで解説しています。
404 NOT FOUND | VBA入門速報
コメント