【VBA】面倒なファイル名変更を「瞬時」に終わらせる2つのテクニック

【業務効率化】VBA
スポンサーリンク
  • 「あぁ、また100個のファイル名に今日の日付を入れなきゃ……」
  • 「フォルダ名がバラバラで管理しにくい、一気に変えられたらいいのに」

デスクワークにおいて、こうした「単純だけどボリュームのある作業」に時間を奪われるのは避けたいものです。

Excel VBAを活用すれば、500個のファイル名変更もわずか数秒で完了します。今回は、初心者の方でも今日から実践できる2つのアプローチをご紹介します。

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

1. 簡潔に記述できる「Nameステートメント」

まずは、最もシンプルで簡単な「Nameステートメント」です。これは、ファイルに貼ってある「名前シール」をペロッと剥がして、新しいシールに貼り替えるようなイメージです。

  • メリット:コードが非常に短くシンプル、事前の準備(参照設定など)が不要
  • デメリット:対象ファイルが開いているとエラーが発生する、複雑なフォルダ操作には不向き

コピペで使えるサンプルコード

以下のコードは、デスクトップにある「old.xlsx」という名前を「new.xlsx」に変える例です。

Sub RenameFileSimple()
    ' Name 元のフルパス As 新しいフルパス
    ' ※フルパスとは、ファイルの「住所」のことです
    On Error Resume Next ' エラーが発生しても処理を中断しないための記述
   
    Name "C:\Users\YourName\Desktop\old.xlsx" As "C:\Users\YourName\Desktop\new.xlsx"
   
    If Err.Number = 0 Then
        MsgBox "名前を変更しました!"
    Else
        MsgBox "失敗しました。ファイルが開いていないか確認してください。"
    End If
End Sub

2. 高機能で柔軟な「FileSystemObject(FSO)」

次は、より柔軟で高度な処理が可能な「FileSystemObject(通称:FSO)」です。

これは、ファイル管理の「有能な専任スタッフ」を雇うイメージです。スタッフに「このフォルダ内にあるすべてのファイル名に、今日の日付を追加して」と指示を出すだけで、正確かつ迅速に処理してくれます。

  • メリット:「フォルダ内の全ファイルを一括変更する」といった複雑な処理が得意、処理前にファイルの存在確認ができるためエラーを防ぎやすい
  • デメリット:コードの冒頭でオブジェクト(専任スタッフ)を生成・呼び出す記述が必要

コピペで使えるサンプルコード

こちらは、将来的に特定のフォルダ内にあるファイルを一括で操作したい場合にも応用しやすい記述例です。

Sub RenameWithFSO()
    ' ファイル操作の専門家(FSO)を呼び出します
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
   
    Dim targetFile As String
    targetFile = "C:\Users\YourName\Desktop\test.txt"
   
    ' ファイルが存在するか確認する
    If fso.FileExists(targetFile) Then
        ' ファイル名を取得して変更する
        Dim fileObj As Object
        Set fileObj = fso.GetFile(targetFile)
        fileObj.Name = "完了_test.txt"
        MsgBox "変更が完了しました!"
    Else
        MsgBox "ファイルが見つかりませんでした。"
    End If
End Sub

まとめ:用途に合わせた使い分けのポイント

  • 手軽に1〜2個のファイル名を変更したい場合:Nameステートメント
  • 大量のファイルを一括処理し、エラーを確実に防ぎたい場合:FSO

まずは上記のコードを自分のPCのパス(住所)に書き換えて、動かしてみることから始めてみてください!

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


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

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

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

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

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

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

コメント

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