公開日:
2つの名簿を比較する簡単なVBAコード
Excelで、2つの名簿を比較することを考えます。
たとえば、新しい名簿と、古い名簿があるとします。下図のように、新しい名簿はB列に、古い名簿はD列に記入されているとします。
![img_1](./24_h03_009_1.png)
この場合において、B列とD列の内容を比較するとします。目視では間違えやすいですし、手作業でセルを並べ替えたりするのも、手間がかかります。このようなときは、VBAを利用すると便利です。
B列とD列を比較するサンプルコードを以下に示します。
'Option VBASupport 1
Sub a()
For i = 1 To 5
 string1 = Cells(i, 2)
 For j = 1 To 6
 
string2 = Cells(j, 4)
If string1 = string2 Then
Cells(i, 3) = string2
Cells(j, 4) = ""
End If
 
 Next j
Next i
End Sub
Sub a()
For i = 1 To 5
 string1 = Cells(i, 2)
 For j = 1 To 6
 
string2 = Cells(j, 4)
If string1 = string2 Then
Cells(i, 3) = string2
Cells(j, 4) = ""
End If
 
 Next j
Next i
End Sub
Sub a()
を実行すると、下図のようになります。
![img_2](./24_h03_009_2.png)
ループ処理によって、B列とD列の値を1つずつ比較します。そして、値が同じだった場合は、その値をC列に記入し、D列からは削除します。
何が読み取れるか?この実行結果から、以下のことが読み取れます。
- BbB は BBB の誤字である。
- CCC という人が名簿に追加されている。
- FFF と GGG という人は名簿から削除されている。
![img_3](./24_h03_009_3.png)
2つの名簿を比較する、VBAの簡単なコードをご紹介しました。
このコードを実際の作業にそのまま使用することはできないと思われます。実際は、処理したいデータに合わせて、変数などを変える必要があります。
この程度の単純なコードでも、工夫しだいで、Excel上の単純作業の効率を大幅に向上させることができると思います。