【EXCEL:VBA】指定フォルダのファイルの名前を一気に変更したい(簡単3ステップ)

指定したフォルダに存在するファイル名を変更したい

この記事では、指定したフォルダに存在するファイルに対して、ファイル名を変更する機能について説明します。

 

手順としては、まずフォルダを指定して、そのフォルダに存在するファイルの名前を取得します。

 

次に、各ファイルの変更したいファイル名を入力します。

 

あとは、一気にファイル名を変更します。

 

 

それでは、EXCELで指定したフォルダに存在するファイルの名前を変更する機能を作成していきましょう。

 

困っている女性

フォルダに存在するファイル名を一気に変更する必要があるの。
今は、どうやっているの?

解決する男性

困っている女性

ファイル1つ1つの名前を手で変更しているの。
それなら、VBAを使えば、一気にファイル名を変更することができるよ。

解決する男性

困っている女性

それそれ、早く教えてよ。

 

似たような便利な「指定したフォルダに存在するファイル一覧を取得する」機能については、以下を参照してください。

指定したフォルダに存在するファイル一覧を取得する 【EXCEL:VBA】指定したフォルダに存在するファイル一覧を取得したい

 

ファイル名変更機能に必要なものを、1つ1つ順番に説明していきます。

STEP1:フォルダ指定欄、ファイル一覧欄を準備する

まず、フォルダを指定する欄と取得したファイル一覧を書き込む欄を作成します。

「メイン」シートを作成する

メインシートを作成する

メインシートを作成する

  1. 「メイン」という名前のシートを作成します。
  2. 1行目に「フォルダパス」のタイトル行を作成します。
  3. 2行目に「フォルダパス」を入力する欄を作成します。
  4. 3行目に「ファイル一覧」というタイトル行を作成します。
  5. 4行目に「NO」、「変更前ファイル名」、「変更後ファイル名」のタイトル行を作成します。
  6. 5行目以降は、取得したファイル一覧を書き込む欄になります。

 

5行目以降には、指定された「フォルダパス」に存在するファイル名をB列にVBAを使って、書込みます。

取得したファイル名に対して、C列に変更したいファイル名を入力します。

 

STEP2:VBAでファイル名を取得する機能を記入する

「Microsoft Visual Basic for Applications」を起動します。

VBAでファイル名を取得する機能を記入する

VBAでファイル名を取得する機能を記入する

 

標準モジュールを追加して、以下のソースを書きます。

 

最後にEXCELを「◯◯◯.xlsm」というような感じでマクロ有効ブック形式で保存します。

 

STEP3:VBAでファイル名を変更する機能を記入する

引き続き、標準モジュールにVBAプログラムを記入します。

VBAでファイル名を変更する機能を記入する

VBAでファイル名を変更する機能を記入する

 

以下のソースを書きます。

 

これで、すべての必要なものが作成できました。

 

【機能の使い方】ファイル一覧を取得し、変更ファイル名を指定する

それでは、フォルダを指定して、ファイル一覧を取得する方法を説明します。

ファイル名を変更したいファイルを格納したフォルダを準備します。

ファイル名を変更したいファイルを1つのフォルダに格納する

ファイル名を変更したいファイルを1つのフォルダに格納する

 

次に、A2セルにフォルダパスを入力します。

次に、「開発」タブの「マクロ」をクリックします。

ファイル名を取得する

ファイル名を取得する

 

先程作成した自作関数「GetFileName」が一覧に表示されていますので、選択します。

次に、「実行」ボタンをクリックしてファイル一覧を作成します。

GetFileNameを実行する

GetFileNameを実行する

 

しばらく待つと、指定したフォルダに存在するファイル一覧が5行目以降に書き込まれます。

ファイル名取得結果

ファイル名取得結果

 

次に、C列に各ファイルの変更したいファイル名を入力します。

変更したいファイル名を入力する

変更したいファイル名を入力する

 

再度、「開発」タブの「マクロ」をクリックします。

先程作成した自作関数「ChangeFileName」が一覧に表示されていますので、選択します。

次に、「実行」ボタンをクリックしてファイル名を変更します。

ChangeFileNameを実行する

ChangeFileNameを実行する

 

しばらく待つと、指定したフォルダのファイル名が変更されます。

ファイル名変更結果

ファイル名変更結果

 

指定したフォルダには、5つファイルが存在しており、変更したいファイル名に変更されています。

 

【VBAプログラムの説明】ファイル名を取得する

それでは、VBAプログラムを説明します。

①参照するシートを変数に格納する

ここでは、このあとの処理で何度も使う「メイン」シートを変数に格納しています。

そうすることにより、入力するプログラムを短くすることができるからです。

何度も「ThisWorkbook.Sheets(“メイン”)」と入力するより、「shtMain」と入力するほうが少なくすむからです。

 

②セルの値をクリアする

ここでは、5行目以降に書き込みされたファイル一覧をクリアしています。

何度もファイル一覧を取得していると、前回取得したファイル一覧が残っていることがあります。

ですから、ファイル一覧を取得する前に、毎回5行目以降をクリアしています。

 

具体的には、5行目から10000行目までをクリアしています。

 

③FileSystemObjectを変数に格納する

ここでは、「FileSystemObject」オブジェクトを変数に格納して、このあとの処理で利用できるようにします。

「FileSystemObject」はファイル操作やフォルダ操作をVBAで行うときに大変お世話になる便利なライブラリです、覚えておくと良いです。

 

④指定されているフォルダに存在するファイル数分処理を繰り返す

ここでは、指定されたフォルダに存在するファイル数分、処理を繰り返しています。

 

⑤現在行を次の行に変更する

ここでは、現在行を次の行に変更するため、変数「nowRow」に格納している値+1を、変数「nowRow」に格納しています。

ループ処理の外側で、変数「nowRow」には4が格納されています。

ファイル一覧情報は、5行目から入力するので、ループ処理の内側に入ったときに変数「nowRow」を+1して、5を格納します。

もちろん、ループしてくると、さらに+1されて6が格納されます。

というように、ファイル情報を5行目以降に書き込みするようにします。

 

⑥NOをセットする

ここでは、A列(NO)に1からの連番を入力します。

変数「nowRow」に5が格納されている場合、-4してセルA5に1が入力されます。

 

⑥ファイル名をセットする

ここでは、B列(ファイル名)に「FileSystemObject」オブジェクトから取得したファイル名を書き込みします。

変数「f」には1つ1つファイル情報が格納されています。

 

⑦変更前ファイル名を取得する

ここでは、取得してきたファイル名を現在行のB列に記入しています。

 

⑧FileSystemObjectをクリアする

ここでは、これまで使ってきた「FileSystemObject」をクリアしています。

クリアしないと、ファイル情報をつかんだままになりますので、ご注意ください。

 

【VBAプログラムの説明】ファイル名を変更する

それでは、「ファイル名を変更するVBAプログラム」を説明します。

①参照するシートを変数に格納する

ここでは、このあとの処理で何度も使う「メイン」シートを変数に格納しています。

 

②FileSystemObjectを変数に格納する

ここでは、「FileSystemObject」オブジェクトを変数に格納して、このあとの処理で利用できるようにします。

「FileSystemObject」はファイル操作やフォルダ操作をVBAで行うときに大変お世話になる便利なライブラリです、覚えておくと良いです。

 

③現在行を次の行に変更する

ここでは、現在行を次の行に変更するため、変数「nowRow」に格納している値+1を、変数「nowRow」に格納しています。

ループ処理の外側で、変数「nowRow」には4が格納されています。

ファイル一覧情報は、5行目から入力するので、ループ処理の内側に入ったときに変数「nowRow」を+1して、5を格納します。

もちろん、ループしてくると、さらに+1されて6が格納されます。

というように、5行目以降の各セルの値を利用します。

 

④変更前ファイル名が空か確認する

ここでは、B列(変更前ファイル名)が空か確認しています。

もし空の場合、ファイル名変更処理を終わらせます。

もし空でない場合、ファイル名変更処理を継続します。

 

⑤変更後ファイル名が入力されているか確認する

ここでは、C列(変更後ファイル名)が空か確認しています。

もし空でない場合、ファイル名変更処理を行います。

もし空の場合、ファイル名変更処理を行わず、次の行に移動します。

 

⑥変更前ファイルを取得する

ここでは、A2セル(フォルダパス)とB列(変更前ファイル名)を利用して、ファイルを取得して変数に格納します。

 

⑦変更後ファイル名に変更する

ここでは、C列(変更後ファイル名)に入力されているファイル名に、取得したファイルを変更しています。

 

⑧FileSystemObjectをクリアする

ここでは、これまで使ってきた「FileSystemObject」をクリアしています。

クリアしないと、ファイル情報をつかんだままになりますので、ご注意ください。

 

それでは、ファイル名を変更する機能を作って、作業を効率化してみましょう。

 

以上です。

 

最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です