伊田生活ブログのロゴ
HOME  >  勉強
カテゴリー : 勉強 - プログラミング
•VBA •Excel •LibreOffice •マクロ



公開日:

2つの名簿を比較する簡単なVBAコード


Excelで、2つの名簿を比較することを考えます。

たとえば、新しい名簿と、古い名簿があるとします。下図のように、新しい名簿はB列に、古い名簿はD列に記入されているとします。

img_1

この場合において、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() を実行すると、下図のようになります。
img_2
コード解説

ループ処理によって、B列とD列の値を1つずつ比較します。そして、値が同じだった場合は、その値をC列に記入し、D列からは削除します。

何が読み取れるか?

この実行結果から、以下のことが読み取れます。

  • BbB は BBB の誤字である。
  • CCC という人が名簿に追加されている。
  • FFF と GGG という人は名簿から削除されている。
img_3
まとめ

2つの名簿を比較する、VBAの簡単なコードをご紹介しました。

このコードを実際の作業にそのまま使用することはできないと思われます。実際は、処理したいデータに合わせて、変数などを変える必要があります。

この程度の単純なコードでも、工夫しだいで、Excel上の単純作業の効率を大幅に向上させることができると思います。