【コピペで即実行】もうファイル整理で消耗しない!VBA自動化で残業ゼロを目指す第一歩

【業務効率化】VBA
スポンサーリンク
  • 「あぁ、またファイルの整理か…」
  • 「フォルダ分けとリネームだけで、気づけば30分も経ってる…」

毎日毎日、繰り返される単純作業。正直、うんざりしていませんか?

こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!

私自身も、かつては大量のファイル整理に貴重な時間を溶かしていました。

「この作業、本当に意味あるのかな…」とネガティブな気持ちでいっぱいでしたね。

もし、あなたも私と同じように、ファイル管理という名の「単純作業地獄」にハマっているなら、この記事はきっとお役に立てるはずです。

この記事は、以下のような悩みに役立ちます。

  • 大量のファイルのコピー、移動、リネームに時間を取られすぎている
  • 単純作業のせいで、本来集中すべき仕事が後回しになっている
  • プログラミングは難しそうで、何から手をつけていいか分からない
  • とにかく面倒な作業から解放されて、定時で帰りたい!

毎日30分が、年間120時間の節約に?

少し計算してみましょう。

もしあなたが毎日30分、ファイル管理に時間を使っているとします。

  • 1ヶ月(20日勤務)で、30分 × 20日 = 600分 = 10時間。
  • 1年間だと、10時間 × 12ヶ月 = 120時間。

年間120時間。これは、フルタイム勤務で考えると丸々15日分に相当します。

この時間が、もしVBAで「2秒」に短縮されたら…どうでしょう?

空いた時間で新しいスキルを学んだり、もっと重要な仕事に集中したり。もちろん、早く帰ってプライベートな時間を楽しんだりもできます。自動化は、そんな未来を現実にする力を持っています。

自動化への第一歩:まずは「ファイル一覧」を取得してみよう!

ファイル管理の自動化と言っても、いきなり複雑なことはしようとすると挫折のもとです。

まずは、「指定したフォルダの中にあるファイルの名前を、全部Excelに書き出す」という処理を自動化してみましょう。

これができれば、「ファイル名の一覧を見ながら、新しいファイル名を考える」「ファイルの一覧を上司に報告する」といった作業が一瞬で終わります。

準備:ExcelでVBAを使えるようにする

初めてVBAを使う方は、まず「開発」タブを表示させる必要があります。

  1. 「ファイル」タブ → 「その他」 → 「オプション」 をクリック。
  2. 「リボンのユーザー設定」を開く。
  3. 右側の「メインタブ」の中から「開発」にチェックを入れて「OK」をクリック。

これで準備は完了です。

コピペでOK!ファイル一覧取得コード

さあ、いよいよコードの登場です。

  1. 先ほど表示させた「開発」タブから「Visual Basic」をクリックします。
  2. 開いた画面(VBE)のメニューから「挿入」→「標準モジュール」をクリック。
  3. 真っ白な画面が出てくるので、そこに以下のコードをそのままコピーして貼り付けてください。

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” の部分を、あなたが一覧を取得したいフォルダのパスに書き換えてください。

▼フォルダのパスを簡単にコピーする方法

  1. 調べたいフォルダをエクスプローラーで開きます。
  2. Shiftキーを押しながらフォルダを右クリックします。
  3. メニューに「パスのコピー」という項目が表示されるのでクリックします。
  4. あとはコードの該当部分に貼り付けるだけです。(貼り付けた後、パスを”で囲むのを忘れないでくださいね)

いざ、実行!

書き換えが終わったら、VBEの画面の上にある緑色の再生ボタン(▶)を押すか、F5キーを押してみてください。

Excelシートに戻ってみてください。指定したフォルダ内のファイル名、フルパス、更新日時が、一瞬でシートに書き出されたはずです!

「完了しました!」というメッセージボックスが表示されたら成功です。

今まで手作業でやっていたことが、ボタン一つで終わる。この感動を、ぜひ味わってみてください。

まとめ:自動化の可能性は無限大

今回は、VBAを使ったファイル管理自動化の「はじめの一歩」をご紹介しました。

「たったこれだけ?」と思うかもしれませんが、まずはこの「一覧を取得する」という基本ができるだけでも、仕事はきっと変わります。

取得した一覧を元に、ファイル名を一括変更したり、特定の文字が含まれるファイルだけ別のフォルダに移動させたり…アイデア次第で、VBAはあなたの最強の相棒になってくれます。

そうしてどんどん面倒な作業はVBAなどに自動で任せて、私たちはもっと創造的な仕事に時間を使っていきたいですね。

一緒に、自動化の世界を楽しみましょう!

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を厳選して紹介します。 もう本選びで失敗したくない方は、ぜひ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました