この記事では、Excel VBAを利用して同じ内容の重複ファイルを削除する方法について詳しく解説します。初心者から中級者までの方が実際に使える具体的なコード例、その詳しい解説、さらには応用例も含めてご紹介します。
Excel VBAの基本
Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。
そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。
基本的な重複ファイル削除コード
Sub RemoveDuplicateFiles()
Dim FolderPath As String
Dim File1 As String, File2 As String
Dim CheckSum1 As String, CheckSum2 As String
FolderPath = "C:\YourFolderPath\" '変更してください
File1 = Dir(FolderPath & "*.*")
Do While File1 <> ""
File2 = Dir(FolderPath & "*.*")
Do While File2 <> ""
If File1 <> File2 Then
CheckSum1 = CreateObject("Scripting.FileSystemObject").GetFile(FolderPath & File1).DateLastModified
CheckSum2 = CreateObject("Scripting.FileSystemObject").GetFile(FolderPath & File2).DateLastModified
If CheckSum1 = CheckSum2 Then
Kill FolderPath & File2
End If
End If
File2 = Dir
Loop
File1 = Dir
Loop
End Sub
コードの詳細解説
このVBAコードは、指定されたフォルダ内のすべてのファイルをスキャンし、重複しているファイルを削除するものです。
1. フォルダのパスを`FolderPath`変数に設定します。
2. `Dir`関数を使用して、そのフォルダ内のすべてのファイルを順番に取得します。
3. `Scripting.FileSystemObject`を使用して、各ファイルの最終更新日時を取得します。
4. 2つのファイルの最終更新日時が同じ場合、そのファイルは重複とみなし、`Kill`関数を使用して削除します。
応用例
1. フォルダ内の特定の拡張子のファイルのみを対象とする
File1 = Dir(FolderPath & "*.txt")
解説
上記のコードを使用すると、テキストファイル(.txt)のみが対象となり、他の種類のファイルは無視されます。
2. 削除されるファイルの名前をエクセルのシートに記録する
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim LastRow As Long
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
ws.Cells(LastRow, 1).Value = File2
解説
このコードを`Kill`関数の前に追加することで、削除されるファイルの名前がエクセルのシートに記録されます。
3. 重複ファイルを削除する代わりに、別のフォルダに移動する
Dim DestinationFolder As String
DestinationFolder = "C:\YourBackupFolder\"
Name FolderPath & File2 As DestinationFolder & File2
解説
このコードは、重複しているファイルを削除するのではなく、指定された別のフォルダに移動します。
まとめ
Excel VBAを使用すると、同じ内容の重複ファイルを簡単に削除したり、特定の処理を施したりすることができます。この記事で紹介した基本的なコードや応用例を活用して、ファイルの管理を効率的に行いましょう。
VBAも良いけどパワークエリも良い
VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。
クリックするとパワークエリの全11講座が表示されます。
-
【初心者向け】パワークエリ入門:ETLツールを使ってエクセルデータを簡単に整形・統合しよう!(1/11)
-
【実践ガイド】パワークエリでデータ収集:Excel、CSV、PDF、Webデータを簡単に取り込む方法をマスターしよう!(2/11)
-
【総力特集】パワークエリで列操作をマスター:選択、変更、移動、削除、結合、分割の詳細解説&実践テクニック!(3/11)
-
【徹底解説】パワークエリで行操作をマスター!フィルター・保持・削除テクニックと練習用エクセルで実践学習(4/11)
-
パワークエリでデータクレンジング: 文字列結合、0埋め、テキスト関数をマスター(5/11)
-
パワークエリで四捨五入、切り捨て、切り上げをマスターする方法(6/11)
-
パワークエリで効率的なデータグループ化を実現する方法(7/11)
-
パワークエリで時間と日付の計算をマスター!便利な関数を使って効率アップ(8/11)
-
パワークエリで条件別集計をマスターする方法(9/11)
-
Excelパワークエリでクロス集計表とデータベース形式を瞬時に変換する方法(10/11)
-
Excelパワークエリ入門: 効率的なデータ整理をマスターしよう!(11/11)
パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください
コメント