この記事では、Excel VBAを使用して特定のフォーマットのファイルを一つのフォルダに整理する方法について説明します。具体的なコードとその詳しい解説、さらには応用例を含めて紹介していきます。この技術を活用することで、ファイルの整理作業を効率化できるでしょう。
目次
基本コードの解説
Excel VBAを使用して、特定のフォーマットのファイルを一つのフォルダに整理する基本的なコードは以下の通りです。
Sub OrganizeFiles()
Dim SourceFolder As String
Dim DestFolder As String
Dim file As String
SourceFolder = "C:\YourSourceFolderPath" '元のフォルダを指定
DestFolder = "C:\YourDestFolderPath" '移動先のフォルダを指定
file = Dir(SourceFolder & "\*.xls*") '特定のフォーマット(ここではExcelファイル)を指定
Do While file <> ""
Name SourceFolder & "\" & file As DestFolder & "\" & file 'ファイルを移動
file = Dir '次のファイルを取得
Loop
End Sub
このコードは、指定されたソースフォルダ内のすべてのExcelファイル(.xls、.xlsxなど)を指定された宛先フォルダに移動します。
コードのポイント
1. `Dir` 関数: この関数を使って、特定のフォーマットのファイルを取得しています。
2. `Name` ステートメント: これを使用して、ファイルを新しい場所に移動しています。
応用例
応用1: 特定のキーワードが含まれるファイルだけを移動
Sub OrganizeFilesByKeyword()
Dim SourceFolder As String
Dim DestFolder As String
Dim file As String
Dim keyword As String
SourceFolder = "C:\YourSourceFolderPath"
DestFolder = "C:\YourDestFolderPath"
keyword = "report"
file = Dir(SourceFolder & "\*.xls*")
Do While file <> ""
If InStr(file, keyword) > 0 Then
Name SourceFolder & "\" & file As DestFolder & "\" & file
End If
file = Dir
Loop
End Sub
応用2: ファイルの日付で整理
Sub OrganizeFilesByDate()
Dim SourceFolder As String
Dim DestFolder As String
Dim file As String
Dim lastModified As Date
SourceFolder = "C:\YourSourceFolderPath"
DestFolder = "C:\YourDestFolderPath"
file = Dir(SourceFolder & "\*.xls*")
Do While file <> ""
lastModified = FileDateTime(SourceFolder & "\" & file)
If lastModified > Date - 30 Then '最近30日以内に更新されたファイル
Name SourceFolder & "\" & file As DestFolder & "\" & file
End If
file = Dir
Loop
End Sub
応用3: 複数のフォルダに分けて整理
Sub OrganizeFilesByType()
Dim SourceFolder As String
Dim DestFolderXLS As String
Dim DestFolderXLSX As String
Dim file As String
SourceFolder = "C:\YourSourceFolderPath"
DestFolderXLS = "C:\YourDestFolderPath\XLS"
DestFolderXLSX = "C:\YourDestFolderPath\XLSX"
file = Dir(SourceFolder & "\*.xls*")
Do While file <> ""
If Right(file, 4) = ".xls" Then
Name SourceFolder & "\" & file As DestFolderXLS & "\" & file
ElseIf Right(file, 5) = ".xlsx" Then
Name SourceFolder & "\" & file As DestFolderXLSX & "\" & file
End If
file = Dir
Loop
End Sub
まとめ
Excel VBAを活用することで、煩雑なファイルの整理作業も効率的に行うことができます。上記の基本コードや応用例を参考に、自身の業務に合わせてカスタマイズしてみてください。
コメント