即座にエクセル作業を自動化する無料アプリ

AIで自分の価値を高める方法とは🙄

MENU

【VBAとChatGPT入門】既存データは上書き、新規データは追加する

既存データは上書き、新規データは追加する

左側の「本日在庫」を、右側の「在庫表」に反映します。


 

 

ChatGPTで作成したVBAコード

Sub データ転記()
    Dim ws As Worksheet
    Dim lastRow As Long, i As Long, matchRow As Long
    
    ' シートを設定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' 最終行を取得
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' 3行目から最終行までループ
    For i = 3 To lastRow
        ' A列とB列の値を取得
        Dim valA As String
        Dim valB As String
        valA = ws.Cells(i, 1).Value
        valB = ws.Cells(i, 2).Value
        
        ' F列とG列で一致する行を探す
        matchRow = 0
        On Error Resume Next
        matchRow = ws.Columns("F").Find(valA, LookIn:=xlValues, LookAt:=xlWhole).Row
        If ws.Cells(matchRow, 7).Value <> valB Then matchRow = 0
        On Error GoTo 0
        
        If matchRow > 0 Then
            ' 一致する場合、C列とD列をH列とI列に転記
            ws.Cells(matchRow, 8).Value = ws.Cells(i, 3).Value
            ws.Cells(matchRow, 9).Value = ws.Cells(i, 4).Value
        Else
            ' 一致しない場合、F列の最終行の一つ下に追加
            Dim newRow As Long
            newRow = ws.Cells(ws.Rows.Count, "F").End(xlUp).Row + 1
            ws.Cells(newRow, 6).Value = valA
            ws.Cells(newRow, 7).Value = valB
            ws.Cells(newRow, 8).Value = ws.Cells(i, 3).Value
            ws.Cells(newRow, 9).Value = ws.Cells(i, 4).Value
        End If
    Next i
End Sub

上のコードを作成するChatGPTのプロンプト

 
下記のVBAコードを、日本語のコメントをいれて作成してください。
処理対象:Sheet1」シートの行目からデータが始まる。
処理1:A列とB列の値がF列とG列の値と一致したら、C列とD列の値をH列とI列に転記する。
処理2:A列とB列の値がF列とG列の値と一致しないときは、F列の最終行の一つ下に、A列、B列、C列、D列の値をF列、G列、H列とJ列に転記する。

 

ChatGPTで作成しました

無料のChatGPT(Microsoft Copilot)で作成しました。

30年前の私は、必要なVBAコードの完成に6か月かかりました。しかしChatGPTを使えば、初心者でもわずか5分でコードを作成できます。

上記のChatGPTのシートやセルを変更して、あなたのVBAコードを作成してください。

VBAコードは、期待通りに動作し、エラーが発生しないかを必ずテストしてください。

知りたいことやエラー修正は、ChatGPT(Microsoft Copilot)がダイレクトにお答えします。