chatGPTで適当に自分用に貼り付け用

おもにエクセルのマクロ

vba シート1のA~Hセルの内容がシート2のBC、J~Oセル内になければシート3のA~Hセルに出力
 
 
ChatGPT

シート1のA列からH列のデータがシート2のBC列およびJ列からO列に存在しない場合、そのデータをシート3のA列からH列に出力するVBAコードは以下のようになります。

Sub データの比較と出力()
    Dim シート1 As Worksheet
    Dim シート2 As Worksheet
    Dim シート3 As Worksheet
    Dim 最終行1 As Long
    Dim i As Long
    Dim 見つかった As Boolean
    
    ' シート1とシート2、シート3の参照を取得
    Set シート1 = ThisWorkbook.Sheets("シート1") ' "シート1"はシート1の実際の名前に変更してください
    Set シート2 = ThisWorkbook.Sheets("シート2") ' "シート2"はシート2の実際の名前に変更してください
    Set シート3 = ThisWorkbook.Sheets("シート3") ' "シート3"はシート3の実際の名前に変更してください
    
    ' シート1の最終行を取得
    最終行1 = シート1.Cells(シート1.Rows.Count, "A").End(xlUp).Row
    
    ' シート1のデータをシート2およびシート3と比較して出力
    For i = 1 To 最終行1
        見つかった = False
        
        ' シート2のBC列およびJ列からO列を検索
        If データが存在する(シート1.Cells(i, "A").Value, シート2.Range("B:C,J:O")) Then
            見つかった = True
        End If
        
        ' シート3に出力
        If Not 見つかった Then
            シート3.Cells(シート3.Cells(シート3.Rows.Count, "A").End(xlUp).Row + 1, "A").Resize(, 8).Value = _
                シート1.Cells(i, "A").Resize(, 8).Value
        End If
    Next i
End Sub

Function データが存在する(検索対象 As Variant, 検索範囲 As Range) As Boolean
    Dim セル As Range
    
    For Each セル In 検索範囲
        If セル.Value = 検索対象 Then
            データが存在する = True
            Exit Function
        End If
    Next セル
    
    データが存在する = False
End Function

このコードでは、データが存在する関数を使って、シート2のBC列およびJ列からO列にデータが存在するかどうかを確認しています。もし存在しない場合は、シート3にそのデータを出力します。なお、実際のシート名が異なる場合は、コード内のシート名を適切に変更してください。