【ChatGPT】ノーコードでExcelを自動化する無料ツール

ChatGPTでVBAコードを作れます(アプリメニューの一番上にあります)

MENU

2つの表の、1列目の値が同じ行で、値が違うセルに色を付ける

無料アプリで、すぐにエクセル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秒で終わります。

ぜひ、アプリをご利用ください。

 

アプリはこちらから↓↓↓↓ 

nocodevba.herokuapp.com