無料アプリで、すぐに、エクセルVBAマクロを作成できます。
例として、「2つの表の、1列目の値が同じ行で、値が違うセルに色を付ける」VBAマクロを作成します。
(ページの末尾に、VBAコード掲載)
事例
伝票番号が同じなのに、データが違うセルに色を付けます。
できました(^^)/
アプリの設定
アプリのトップページ
⇒▼検索・置換・2表比較
⇒2つの表の、1列目の値が同じ行で、値が違うセルに色を付ける
表示されるVBAコード
アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。
Sub デモ_107() '2つの表の、1列目の値が同じ行で、値が違うセルに色を付ける
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止
'◆元右下セルの取得
Dim 元右下セル As String, 辞書 As Object, 行 As Long, セル As Range
Sheets("データ").Select
'◆最終行を取得し、セル範囲を決める
Range("a2:f2").CurrentRegion.Select
元右下セル = Cells(Selection.Row + Selection.Rows.Count - 1, Range("f2").Column).Address(False, False)
'◆辞書のkeyに元セルの値、itemに元セルのアドレスを入れる
Set 辞書 = CreateObject("Scripting.Dictionary")
For 行 = Range("a2").Row To Range(元右下セル).Row
Set セル = Sheets("データ").Cells(行, Range("a2").Column)
辞書.Add セル.Value, セル.Address(False, False)
Next 行
'◆先右下セルの取得
Dim 先右下セル As String, 対象行 As Long, 対象列 As Long, 対象key As Variant
Sheets("データ").Select
Range("i2:n2").CurrentRegion.Select
先右下セル = Cells(Selection.Row + Selection.Rows.Count - 1, Range("n2").Column).Address(False, False)
'先の色をクリアする
Range(Sheets("データ").Range("i2"), Sheets("データ").Range(先右下セル)).Interior.ColorIndex = xlNone
'先セルの値で、対象キーを作り、それが辞書にあれば、右側のデータの相違をチェックし、値が異なれば黄色
For 対象行 = Range("i2").Row To Range(先右下セル).Row
対象key = Sheets("データ").Cells(対象行, Range("i2").Column).Value
'辞書に対象keyがあったら
If 辞書.Exists(対象key) Then
'右のデータの相違をチェック
For 対象列 = 1 To Range(元右下セル).Column - Range("a2").Column
'値が異なれば黄色
If Sheets("データ").Cells(対象行, Range("i2").Column).Offset(0, 対象列).Value <> Sheets("データ").Range(辞書.Item(対象key)).Offset(0, 対象列).Value Then
Sheets("データ").Cells(対象行, Range("i2").Column).Offset(0, 対象列).Interior.Color = RGB(255, 255, 0)
End If
Next 対象列
End If
Next 対象行
Application.DisplayAlerts = True ' 警告表示を再開
Application.ScreenUpdating = True ' 画面描画を再開
End Sub
マクロを使うメリット
手作業で数分かかる作業が、1秒で終わります。
ぜひ、アプリをご利用ください。