へっぽこエンジニアの覚え書き

主に、バッチとTeraTermマクロのことについて書きます。

エクセルでdiff

Sub diff()

    Dim r As Range
    On Error Resume Next
    Set r = Application.InputBox(prompt:="編集後のセル範囲指定をしてください", Type:=8)
    r.Select
        
    Application.CutCopyMode = False
    
Dim rng As Range
Set rng = Application.InputBox(prompt:="編集前シートの左上のセルを選択してください。", Type:=8)
  
  Debug.Print rng.Parent.Name
  Debug.Print rng.Address(False, False)
  
  Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, Formula1:="=" & rng.Parent.Name & "!" & rng.Address(False, False)

    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 5296274
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Range("A1").Select
End Sub

会員番号 氏名 電話番号
0001 田中一応 09012341111
0002 佐藤敬一郎 05044449999
0003 牧三郎 08033334567
0004 鈴木圭太 01029998887
0005 山本山自動 02089888897
0006 平井大和 05067894321
0007 翔みなと 03077788888
0008 今井平井 06078900987
0009 前田花子 03066661111

↑みたいなデータを

会員番号 氏名 電話番号
0001 田中一応 09012341111
0002 佐藤敬一郎 05044449999
0003 巻三郎 08033334567
0004 鈴木圭太 01029998888
0005 山本川次郎 02089888897
0006 平井大和 05067894321
0007 翔みなと 03077788888
0008 今井平井 06078900987
0009 前田花子 03066661111

のように編集した場合に差分を見つけることができるようになります。