このページでは、フルパスで指定した2つのテキストファイルの中身が一致しているか確認するVBAコードをご紹介していきます。
ただ単に一致を確認するだけではなく、不一致の場合はどこが不一致なのかも教えてくれるようになっています。
あなたが指定するのは2つのテキストファイルのフルパスだけでOKです。
それではさっそくやっていきましょう!
使用するテキストファイルの紹介
今回は以下の以下のようなテキストファイルを使用していきます。
今回は4行しかありませんが、基本的には何行あっても対応可能です。
このファイルを2つ用意し、完全一致している場合、1つだけ一部が変更されている場合の2パターンで動作を確認していきます。
2つのテキストファイルが一致しているか確認するサンプルコード
それでは本題である2つのテキストファイルが一致しているか確認する方法をご紹介していきます。
以下がそのサンプルコードです。
※9,10行目にあなたが比較したい2つのファイルのフルパスを指定して使用してください。
Sub diff_text()
'変数の型を宣言
Dim filename1 As String, filename2 As String
Dim read_data1 As String, read_data2 As String
Dim i As Integer, counter As Integer
'テキストファイルのフルパスを指定
read_data1 = "C:\Users\Desktop\test\folder1\sample1.txt"
read_data2 = "C:\Users\Desktop\test\folder2\sample2.txt"
'2つのテキストファイルを開く
Workbooks.OpenText Filename:=read_data1 _
, Origin:=932, startrow:=1, DataType:=xlDelimited, textQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=False
filename1 = ActiveWorkbook.Name
Workbooks.OpenText Filename:=read_data2 _
, Origin:=932, startrow:=1, DataType:=xlDelimited, textQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=False
filename2 = ActiveWorkbook.Name
'2つのテキストファイルを比較していく
counter = 0
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Workbooks(filename1).Sheets(1).Cells(i, 1) <> Workbooks(filename2).Sheets(1).Cells(i, 1) Then
MsgBox i & "行目が違います" & vbCrLf & _
"file1=" & Workbooks(filename1).Sheets(1).Cells(i, 1) & vbCrLf & _
"file2=" & Workbooks(filename2).Sheets(1).Cells(i, 1)
counter = counter + 1
End If
Next
If counter = 0 Then
MsgBox "2つのファイルは一致しています"
End If
'2つのテキストファイルを閉じる
Workbooks(filename1).Close SaveChanges:=False
Workbooks(filename2).Close SaveChanges:=False
End Sub
サンプルコードの実行結果
それでは先ほどのサンプルコードが正しく動くのか確認してみましょう。
まずは以下の2つのファイルで実行してみます。
(2つが完全一致しているパターンです。)
実行結果です。
問題なく動作していますね。
次は以下の2つで実行してみます。
(3行目が異なっていますね。)
実行結果です。
こちらも問題なく動作していますね。
違い箇所が複数あっても動作するはずですのでご確認ください。
というわけで問題なく実行できましたね。
おわりに
というわけで今回は、エクセルVBAをつかって2つのテキストファイルが一致しているか確認する方法をご紹介しました。
データ分析の際などにぜひご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント
sub open_text()で
base_file
を宣言していますが使っていませんね。
ほんとですね(^_^;)
ご指摘ありがとうございます。
修正させていただきました。