最近、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を使わないという選択肢は無いです。

 

ぱにゃにゃんだー!

 

ラーメンラーメンラーメンラーメンラーメン