エクセルVBAでファイル管理を効率化!フォルダ操作の基本
1. VBAでファイル・フォルダを管理するメリット
VBA(Visual Basic for Applications)を使うと、エクセル内からフォルダやファイルを自動で作成・削除・移動・コピーすることができます。
✅ VBAでファイル管理を自動化するメリット
- 手作業不要!ファイルの整理を一瞬で完了
- 複数のファイルをまとめて処理できる
- フォルダを自動作成し、業務の効率をUP
- 指定した条件に応じたファイル操作が可能
💡 ファイル管理の自動化で、作業時間を短縮し、ミスを防ぎましょう!
2. VBAでフォルダを操作する基本コード
🔹 ① フォルダを作成する
📌 指定した場所にフォルダを作成するVBAコード
Sub CreateFolder()
Dim folderPath As String
folderPath = "C:\TestFolder" '作成するフォルダのパス
If Dir(folderPath, vbDirectory) = "" Then
MkDir folderPath 'フォルダを作成
MsgBox "フォルダを作成しました!"
Else
MsgBox "フォルダはすでに存在します!"
End If
End Sub
✅ 実行すると「C:\TestFolder」というフォルダが作成されます!
🔹 ② フォルダを削除する
📌 指定したフォルダを削除するコード
Sub DeleteFolder()
Dim folderPath As String
folderPath = "C:\TestFolder" '削除するフォルダのパス
If Dir(folderPath, vbDirectory) <> "" Then
RmDir folderPath 'フォルダを削除
MsgBox "フォルダを削除しました!"
Else
MsgBox "フォルダが存在しません!"
End If
End Sub
✅ 実行すると、指定フォルダが削除されます!(フォルダ内にファイルがある場合、削除されないので注意)
🔹 ③ フォルダ内のファイル一覧を取得する
📌 フォルダ内のファイル名を一覧にするVBAコード
Sub ListFiles()
Dim folderPath As String
Dim fileName As String
Dim rowNum As Integer
folderPath = "C:\TestFolder\" '対象のフォルダパス
fileName = Dir(folderPath & "*") 'フォルダ内の最初のファイル取得
rowNum = 1
Do While fileName <> ""
Cells(rowNum, 1).Value = fileName 'セルにファイル名を入力
fileName = Dir() '次のファイルを取得
rowNum = rowNum + 1
Loop
MsgBox "ファイル一覧を取得しました!"
End Sub
✅ 実行すると、フォルダ内のファイル名がExcelシートに一覧表示されます!
3. VBAでファイルを操作する基本コード
🔹 ④ ファイルをコピーする
📌 指定したファイルをコピーするコード
Sub CopyFile()
Dim sourceFile As String, targetFile As String
sourceFile = "C:\TestFolder\data.xlsx" 'コピー元ファイル
targetFile = "C:\BackupFolder\data.xlsx" 'コピー先ファイル
FileCopy sourceFile, targetFile
MsgBox "ファイルをコピーしました!"
End Sub
✅ 実行すると、「C:\TestFolder\data.xlsx」が「C:\BackupFolder\data.xlsx」にコピーされます!
🔹 ⑤ ファイルを移動する
📌 指定したファイルを別のフォルダに移動するコード
Sub MoveFile()
Dim sourceFile As String, targetFile As String
sourceFile = "C:\TestFolder\data.xlsx" '移動元ファイル
targetFile = "C:\NewFolder\data.xlsx" '移動先ファイル
Name sourceFile As targetFile
MsgBox "ファイルを移動しました!"
End Sub
✅ 実行すると、指定したファイルが新しいフォルダに移動します!
🔹 ⑥ ファイルを削除する
📌 指定したファイルを削除するコード
Sub DeleteFile()
Dim filePath As String
filePath = "C:\TestFolder\data.xlsx" '削除するファイルのパス
If Dir(filePath) <> "" Then
Kill filePath 'ファイルを削除
MsgBox "ファイルを削除しました!"
Else
MsgBox "ファイルが存在しません!"
End If
End Sub
✅ 実行すると、指定したファイルが削除されます!(削除後の復元はできません)
4. VBAでフォルダ・ファイル管理を効率化する活用例
活用シーン | VBAでできること |
---|---|
業務用ファイルの整理 | 日付ごとにフォルダを作成し、ファイルを分類 |
バックアップの自動化 | ファイルを定期的に別フォルダにコピー |
大量のファイル管理 | フォルダ内のファイル一覧を取得し、整理 |
重複ファイルの検出 | 指定フォルダ内の同名ファイルを検索 |
古いデータの整理 | 一定期間経過したファイルを自動削除 |
💡 VBAを活用すれば、手作業では面倒なファイル管理が一瞬で完了!
5. まとめ
✅ VBAを使えば、フォルダやファイルの作成・削除・移動を自動化できる! ✅ ファイル一覧の取得やコピー・整理が一瞬で完了! ✅ 業務に応じたファイル管理ルールを設定し、効率UP! ✅ VBAを活用して、エクセルでのファイル操作をもっとスマートにしよう!
💡 VBAをマスターすれば、ファイル管理の手間を大幅に削減できます!🚀
コメント