VBAを使用してExcelで2つの行を比較する方法

手動で行ごとにデータを比較する VBAを使用してExcelで2つの行を比較し、このプロセスを自動化する方法を紹介しましょう。

VBAには、2つの文字列を比較できるStrCompと呼ばれる組み込み関数があります。 この関数は、比較の結果に基づいて整数を返します。 ゼロ’0’は完全一致を意味し、結果が’0’と等しくない場合は、次のコード例でセルが強調表示されます。

StrComp関数は3つの引数を取得します:最初の2つの引数は比較される文字列であり、最後の引数は比較タイプです(オプション)。 省略された場合、比較のタイプはOption Compare設定によって決定されます。 以下は、すべての利用可能なオプションです:

  • vbUseCompareOption:Option Compareステートメントの設定を使用して比較を実行します。
  • vbBinaryCompare:バイナリ比較を実行します。 大文字と小文字が区別されます。
  • vbTextCompare:テキスト比較を実行します。 大文字と小文字は区別されません。
  • vbDatabaseCompare: データベース内の情報に基づいて比較を実行します。 Microsoft Accessのみ。

このコードでは、ユーザーが単一の範囲内の行を選択する必要があります。 選択された範囲は範囲変数bothrowsに割り当てられ、その範囲内の各セルは列ごとに比較されます。 With文を使用すると、各行に対してbothrowsを繰り返す必要はなく、For…Nextループはすべてのセルをチェックする方法です。

強調表示

範囲を取得した後、ColorIndexプロパティを使用してその範囲を色に設定できます。 ここに色のためのある索引数はある:

  • 3: 赤
  • 5:青
  • 6:黄色
  • 0:塗りつぶしなし

まず、ブックまたはアドインファイルにモジュールを追加する必要があります。 コードをコピーしてモジュールに貼り付けて実行します。 Moduleメソッドの主な利点は、後で再度使用できるように、コードをファイルに保存できることです。 さらに、モジュール内のサブルーチンは、メニューリボンまたはキーボードショートカットのアイコンで使用できます。 VBAコードを保存するには、ファイルをXLSMまたはXLAM形式で保存することを忘れないでください。

ハイライト用サンプルコード

Sub HighlightRowDifferences() Dim bothrows As Range, i As Integer Set bothrows = Selection With bothrows For i = 1 To .Columns.Count If Not StrComp(.Cells(1, i), .Cells(2, i), vbBinaryCompare) = 0 Then Range(.Cells(1, i), .Cells(2, i)).Interior.ColorIndex = 6 End If Next i End WithEnd Sub

コメントを残す

メールアドレスが公開されることはありません。