HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > アクティブセルとのデータの比較−アクティブ行(列)との相違

即効テクニック

セル操作関連のテクニック

アクティブセルとのデータの比較−アクティブ行(列)との相違

(Excel 97/2000)
”アクティブ行(列)との相違”の機能はメニューから”編集”−”ジャンプ”−”セル選択”で表示される選択オプションダイアログでして出来る機能です。
サンプル1ではアクティブセルと、アクティブセルを含む行のデータを比較し、相違するセルを選択します。

(サンプル1)
Dim TargetRow As Range
Dim Different As Range

Set TargetRow = ActiveCell.EntireRow
Set Different = TargetRow.RowDifferences(ActiveCell)

Different.Select
※RowDifferencesメソッド、ColumnDifferencesメソッドの引数に基準となるセル
 を指定します。

サンプル2では、アクティブシートのデータをA列のセルを基準に項目行以外のすべての列をチェックし、相違セルに塗りつぶしを設定します。

(サンプル2)

※一行目を項目行とし、比較基準セルをA列の各行のセルとする
Sub PaintDifCell()

Dim DataArea As Range, TargetRow As Range, Different As Range
Dim i As Long

Set DataArea = Range("A1").CurrentRegion

For i = 2 To DataArea.Rows.Count
    
    On Error GoTo Err_Proc
    DataArea.Rows(i).RowDifferences(Cells(i, 1)). _
        Interior.Color = RGB(250, 150, 250) '相違セルの塗りつぶし
    
Next i

Exit Sub

'エラー番号1004を相違セルがない場合とみなしてエラー処理
Err_Proc:

If Err.Number = 1004 Then
    Err.Clear
    Resume Next
Else
    MsgBox "Error : " & Err.Description
    Exit Sub
End If

End Sub