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

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

MENU

2つの表(1列、複数列)で、重複する(しない)データに色を付ける

無料アプリで、すぐにエクセルVBAマクロを作成できます。

例として、「2つの表(1列、複数列)で、重複するデータに色を付ける」VBAマクロを作成します。

(ページの末尾に、VBAコード掲載)

事例

左のデータが、右のデータにあるとき、そのセルを、黄色にします。

できました(^^)/

アプリの設定

アプリのトップページ 

 ⇒▼検索・置換・2表比較 

 ⇒2つの表(1列、複数列)で、重複する(しない)データに色を付ける

 



表示されるVBAコード 

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

Sub デモ_127() '2つの表(1列、複数列)で、重複する(しない)データに色を付ける
 Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False  ' 警告表示を停止
'◆◆右下セルの取得
Dim 元右下セル As String, 先右下セル As String
Sheets("Sheet1").Select
Range("a2:b2").CurrentRegion.Select
元右下セル = Cells(Selection.Row + Selection.Rows.Count - 1, Range("b2").Column).Address(False, False)
Sheets("sheet1").Select
Range("d2:e2").CurrentRegion.Select
先右下セル = Cells(Selection.Row + Selection.Rows.Count - 1, Range("e2").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("a2"), Sheets("Sheet1").Range(元右下セル))
'◆配列を1列づつ、1次元配列へ格納
For 元の列数 = 1 To Range(元右下セル).Column - Range("a2").Column + 1
    If Range(元右下セル).Column = Range("a2").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("d2"), Sheets("sheet1").Range(先右下セル)).Interior.ColorIndex = xlNone
For 対象列 = Range("d2").Column To Range(先右下セル).Column
    For 対象行 = Range("d2").Row To Range(先右下セル).Row
        対象key = Sheets("sheet1").Cells(対象行, 対象列).Value
        If 元辞書.Exists(対象key) Then
            Cells(対象行, 対象列).Interior.Color = RGB(255, 255, 0)
        End If
    Next 対象行
Next 対象列
Application.DisplayAlerts = True   ' 警告表示を再開
Application.ScreenUpdating = True  ' 画面描画を再開
End Sub

 

マクロを使うメリット

手作業で数分かかる作業が、1秒で終わります。

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

 

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

nocodevba.herokuapp.com