エクセルVBAマクロを自動作成する無料アプリです。
例として「条件に一致しないデータを転記」するVBAマクロを作成します。
事例 リストと入金を比較し、未入金を転記する
転記できました😊
複雑な除外する条件を設定できる「フィルターオプション」はこちら
アプリの設定
アプリの設定です。
アプリへのリンク ⇒データから、条件に一致しないデータの抽出する
表示されるVBAコード
アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。
VBAコードを見る
Sub デモ() 'データから、条件に一致しないデータの抽出する
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止
'辞書オブジェクトの作成
Dim 辞書1 As Object
Set 辞書1 = CreateObject("Scripting.Dictionary")
'除外する表を決定
Sheets("Sheet1").Select
Dim 最終行 As Long, 対象セル As Range
最終行 = Cells(Rows.Count, Range("e4").Column).End(xlUp).Row
Set 対象セル = Range("e4" & ":" & Cells(最終行, Range("f4").Column).Address(False, False))
'辞書1の作成
Dim key1 As Variant, 行1 As Range
For Each 行1 In 対象セル.Rows
key1 = 行1.Cells(1, 1) & "|" & 行1.Cells(1, 2)
If 辞書1.Exists(key1) Then
Else
辞書1(key1) = ""
End If
Next
'データ表を決定
Sheets("Sheet1").Select
Dim 最終行2 As Long
最終行2 = Cells(Rows.Count, Range("a4").Column).End(xlUp).Row
Set 対象セル = Range("a4" & ":" & Cells(最終行2, Range("c4").Column).Address(False, False))
'辞書1にkey2
Dim key2 As Variant, 行2 As Range
For Each 行2 In 対象セル.Rows
key2 = 行2.Cells(1, 1) & "|" & 行2.Cells(1, 2)
'辞書1にkey2が無い
If Not 辞書1.Exists(key2) Then
行2.Copy Destination:=Sheets("Sheet1").Cells(Rows.Count, Range("h4").Column).End(xlUp).Offset(1, 0)
End If
Next
'Application.ScreenUpdatingとApplication.DisplayAlertsをTrueに戻す
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub