- 「あぁ、またファイルの整理か…」
- 「フォルダ分けとリネームだけで、気づけば30分も経ってる…」
毎日毎日、繰り返される単純作業。正直、うんざりしていませんか?
こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
私自身も、かつては大量のファイル整理に貴重な時間を溶かしていました。
「この作業、本当に意味あるのかな…」とネガティブな気持ちでいっぱいでしたね。
もし、あなたも私と同じように、ファイル管理という名の「単純作業地獄」にハマっているなら、この記事はきっとお役に立てるはずです。
この記事は、以下のような悩みに役立ちます。
- 大量のファイルのコピー、移動、リネームに時間を取られすぎている
- 単純作業のせいで、本来集中すべき仕事が後回しになっている
- プログラミングは難しそうで、何から手をつけていいか分からない
- とにかく面倒な作業から解放されて、定時で帰りたい!
毎日30分が、年間120時間の節約に?
少し計算してみましょう。
もしあなたが毎日30分、ファイル管理に時間を使っているとします。
- 1ヶ月(20日勤務)で、30分 × 20日 = 600分 = 10時間。
- 1年間だと、10時間 × 12ヶ月 = 120時間。
年間120時間。これは、フルタイム勤務で考えると丸々15日分に相当します。
この時間が、もしVBAで「2秒」に短縮されたら…どうでしょう?
空いた時間で新しいスキルを学んだり、もっと重要な仕事に集中したり。もちろん、早く帰ってプライベートな時間を楽しんだりもできます。自動化は、そんな未来を現実にする力を持っています。
自動化への第一歩:まずは「ファイル一覧」を取得してみよう!
ファイル管理の自動化と言っても、いきなり複雑なことはしようとすると挫折のもとです。
まずは、「指定したフォルダの中にあるファイルの名前を、全部Excelに書き出す」という処理を自動化してみましょう。
これができれば、「ファイル名の一覧を見ながら、新しいファイル名を考える」「ファイルの一覧を上司に報告する」といった作業が一瞬で終わります。
準備:ExcelでVBAを使えるようにする
初めてVBAを使う方は、まず「開発」タブを表示させる必要があります。
- 「ファイル」タブ → 「その他」 → 「オプション」 をクリック。
- 「リボンのユーザー設定」を開く。
- 右側の「メインタブ」の中から「開発」にチェックを入れて「OK」をクリック。
これで準備は完了です。
コピペでOK!ファイル一覧取得コード
さあ、いよいよコードの登場です。
- 先ほど表示させた「開発」タブから「Visual Basic」をクリックします。
- 開いた画面(VBE)のメニューから「挿入」→「標準モジュール」をクリック。
- 真っ白な画面が出てくるので、そこに以下のコードをそのままコピーして貼り付けてください。
Sub GetFileList()
'==設定ここから==
'ファイル一覧を取得したいフォルダのパスを指定してください
Const TARGET_PATH As String = "C:\Users\YourName\Desktop\test"
'結果を書き出すシート名を指定してください
Const OUTPUT_SHEET_NAME As String = "Sheet1"
'==設定ここまで==
Dim fso As Object
Dim targetFolder As Object
Dim file As Object
Dim i As Long
Dim ws As Worksheet
'書き出すシートを準備
On Error Resume Next
Set ws = ThisWorkbook.Sheets(OUTPUT_SHEET_NAME)
If ws Is Nothing Then
Set ws = ThisWorkbook.Sheets.Add
ws.Name = OUTPUT_SHEET_NAME
End If
On Error GoTo 0
ws.Cells.ClearContents
ws.Cells(1, 1).Value = "ファイル名"
ws.Cells(1, 2).Value = "フルパス"
ws.Cells(1, 3).Value = "更新日時"
Set fso = CreateObject("Scripting.FileSystemObject")
Set targetFolder = fso.GetFolder(TARGET_PATH)
i = 2 '2行目から書き出す
For Each file In targetFolder.Files
ws.Cells(i, 1).Value = file.Name
ws.Cells(i, 2).Value = file.Path
ws.Cells(i, 3).Value = file.DateLastModified
i = i + 1
Next file
Set file = Nothing
Set targetFolder = Nothing
Set fso = Nothing
MsgBox "ファイル一覧の取得が完了しました!"
End Sub
今回は割愛しますが、応用すれば、ここからさらにファイル名を一括で変更したり…なんてことも可能です。
あなた専用にコードを書き換えよう
貼り付けたコードの中で、あなたが変更するのはたった1ヶ所です。
Const TARGET_PATH As String = “C:\Users\YourName\Desktop\test”
この “C:\Users\YourName\Desktop\test” の部分を、あなたが一覧を取得したいフォルダのパスに書き換えてください。
▼フォルダのパスを簡単にコピーする方法
- 調べたいフォルダをエクスプローラーで開きます。
- Shiftキーを押しながらフォルダを右クリックします。
- メニューに「パスのコピー」という項目が表示されるのでクリックします。
- あとはコードの該当部分に貼り付けるだけです。(貼り付けた後、パスを”で囲むのを忘れないでくださいね)
いざ、実行!
書き換えが終わったら、VBEの画面の上にある緑色の再生ボタン(▶)を押すか、F5キーを押してみてください。
Excelシートに戻ってみてください。指定したフォルダ内のファイル名、フルパス、更新日時が、一瞬でシートに書き出されたはずです!
「完了しました!」というメッセージボックスが表示されたら成功です。
今まで手作業でやっていたことが、ボタン一つで終わる。この感動を、ぜひ味わってみてください。
まとめ:自動化の可能性は無限大
今回は、VBAを使ったファイル管理自動化の「はじめの一歩」をご紹介しました。
「たったこれだけ?」と思うかもしれませんが、まずはこの「一覧を取得する」という基本ができるだけでも、仕事はきっと変わります。
取得した一覧を元に、ファイル名を一括変更したり、特定の文字が含まれるファイルだけ別のフォルダに移動させたり…アイデア次第で、VBAはあなたの最強の相棒になってくれます。
そうしてどんどん面倒な作業はVBAなどに自動で任せて、私たちはもっと創造的な仕事に時間を使っていきたいですね。
一緒に、自動化の世界を楽しみましょう!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を厳選して紹介します。 もう本選びで失敗したくない方は、ぜひ参考にしてみてください。


コメント