最近、Excelマクロ(VBA)をプログラミングする機会が多くなったので、本日、噂のAI"ChatGPT"を使ってみました。
問い合わせの例は以下の通り。
"vba sheet1のA列と同じ値を持つsheet2のA列をvlookupで探して、その行のC列の値をsheet1のB列に求める"
Bingチャット(Bing AI)が作ってくれたコーディングは以下の通りで、
Sub vlookup()
Dim lastRow As Long
Dim i As Long
lastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastRow
Sheets("Sheet1").Cells(i, 2) = Application.VLookup(Sheets("Sheet1").Cells(i, 1), Sheets("Sheet2").Range("A:C"), 3, False)
Next i
End Sub
それに対しChatGPTが作ってくれたコーディングは以下の通り。
Sub FindAndFillValues()
Dim lastRowSheet1 As Long
Dim lastRowSheet2 As Long
Dim lookupValue As Variant
Dim lookupResult As Variant
Dim i As Long
' Sheet1の最終行を取得
lastRowSheet1 = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
' Sheet2の最終行を取得
lastRowSheet2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row
' Sheet1の各行について処理
For i = 2 To lastRowSheet1 ' 1行目はヘッダーなので2から始める
lookupValue = Sheets("Sheet1").Cells(i, "A").Value
' VLOOKUPでSheet2から値を探す
lookupResult = Application.VLookup(lookupValue, Sheets("Sheet2").Range("A:C"), 3, False)
' 結果をSheet1のB列に入力
If Not IsError(lookupResult) Then
Sheets("Sheet1").Cells(i, "B").Value = lookupResult
Else
Sheets("Sheet1").Cells(i, "B").Value = "Not Found"
End If
Next i
End Sub
※注意:ブラウザの環境によって上記コーディングの一部が改行されますのでご注意ください。
すげー、ChatGPT!エラー処理も考慮している!!!
これはChatGPTを使わないという選択肢は無いです。
ぱにゃにゃんだー!