VBAマクロを自動作成する無料アプリ

VBAコードの知識不要😊ChatGPTで機能を追加

MENU

【ノーコード】表を比較し、値が違う(同じ)セルに色を付ける

エクセルVBAマクロを自動作成する無料アプリです。

例として、「表を比較し、値が違う(同じ)セルに色を付ける」VBAマクロを作成します。

事例 今月と前月の会員一覧を照合し、無い会員番号に色を付けます

できました😄

 

なお表の比較は、4つパターンがあります😊

表を比較し、違うに色を付ける|Dictionary

通し番号がある表を比較し、違うセルに色を付ける|Dictionary

同一の表を比較し、値が違うセルに色を付ける|配列

表を比較し、違う(同じ)セルに色を付ける|Dictionary

 

アプリの設定

アプリのトップページ 

 ⇒▼転記・上書き・新規追加・比較

 ⇒【ツール】2つの範囲で、値が重複する(しない)セルに色を付ける

 

 

表示されるVBAコード 

アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。

 

VBAコードを見る

Sub デモ() '2つの表で、重複する(しない)値に色を付ける
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False  ' 警告表示を停止
 '◆◆右下セルの取得
Dim 元右下セル As String, 先右下セル As String
Sheets("Sheet1").Select
Range("a1:a1").CurrentRegion.Select
元右下セル = Cells(Selection.Row + Selection.Rows.Count - 1, Range("a1").Column).Address(False, False)
Sheets("sheet1").Select
Range("g1:g1").CurrentRegion.Select
先右下セル = Cells(Selection.Row + Selection.Rows.Count - 1, Range("g1").Column).Address(False, False)
'◆◆元表から辞書作成
Dim 元シート As Worksheet, 元辞書 As Object, 元key As Variant
Set 元辞書 = CreateObject("Scripting.Dictionary")
'◆元表を配列に格納
Dim 元表データ As Variant, 元の列数 As Long, データ1列 As Variant
元表データ = Range(Sheets("Sheet1").Range("a1"), Sheets("Sheet1").Range(元右下セル))
'◆配列を1列づつ、1次元配列へ格納
For 元の列数 = 1 To Range(元右下セル).Column - Range("a1").Column + 1
    If Range(元右下セル).Column = Range("a1").Column Then
        データ1列 = 元表データ
    Else
        データ1列 = WorksheetFunction.Index(WorksheetFunction.Transpose(元表データ), 元の列数)
    End If
    '◆元辞書作成
    For Each 元key In データ1列
        If Not 元辞書.Exists(元key) Then
            元辞書.Add 元key, ""
        End If
    Next 元key
Next 元の列数
'◆◆色を付ける処理
Dim 対象列 As Long, 対象行  As Long, 対象key As Variant
Range(Sheets("sheet1").Range("g1"), Sheets("sheet1").Range(先右下セル)).Interior.ColorIndex = xlNone
For 対象列 = Range("g1").Column To Range(先右下セル).Column
    For 対象行 = Range("g1").Row To Range(先右下セル).Row
        対象key = Sheets("sheet1").Cells(対象行, 対象列).Value
        If Not 元辞書.Exists(対象key) Then
            Cells(対象行, 対象列).Interior.Color = RGB(255, 255, 0)
        End If
    Next 対象行
Next 対象列
Application.DisplayAlerts = True   ' 警告表示を再開
Application.ScreenUpdating = True  ' 画面描画を再開
End Sub

 

ChatGPTで修正

あなたが自動化したい内容と事例が少し異なる場合は、無料で使えるマイクロソフトの「BingAIチャット」でコードを修正します。とても簡単です!

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