既存データは上書き、新規データは追加する
左側の「本日在庫」を、右側の「在庫表」に反映します。
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」シートの3行目からデータが始まる。 処理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)がダイレクトにお答えします。