この記事では、大量のフォルダ名をVBAを使って一括変更する方法をご紹介していきます。
大量のフォルダを準備するときに
①1つフォルダをつくって
②コピー&ペイスト
で増やすことってありますよね。
そうするとこうなるはず。
で、これを任意の名前に書き換えて・・・
「いや、めんどくさい!!」
この記事を読んでいる人はきっとこうなっている人だと思います。
今回はこのような状況を効率的に解決する方法をご紹介します。
エクセルがあればだれでも簡単に実行できます。
それではやり方をご紹介していきます。
事前準備①VBAの実行環境構築
まずは事前の準備から始めましょう。
今回はVBAというツールを使っていきます。
「VBAってなに?」
というかたはまずは以下の記事を参考にVBAを使えるようにしておきましょう。
エクセルマクロ(VBA)の始め方!初心者向けに画像を使って詳細解説
VBAくらいわかってるぜ、という方は次の工程に進んでください。
事前準備②エクセルシートを整える
今回はエクセルシートに記入された情報をもとにフォルダ名の変更を行っていきます。
というわけでまずはその情報達を記述する場所を整えておきましょう。
今回は以下のような形にしておきました。
A2セルには名前を変更したいフォルダがたくさんはいっているフォルダのフルパスを入力しておきます。
※基本的にこのA2セル、A4、B4セル以降の情報だけを使いますので、A1、A3、B3セルは何を書いていても問題ありません。
というわけでこれで事前準備は完了です。
いよいよコードの記述にはいっていきましょう。
既存のフォルダ名を一括取得するコードの作成、実行
まずは先ほど整えたエクセルシートのA列に名前を変更したいフォルダ一覧を一括取得するコードを記述していきましょう。
以下がそのコードです。
Sub folder_search()
'変数の型を宣言
Dim folder_path As String
Dim folder_name As String
Dim i As Integer
folder_path = Cells(2, 1) & "\"
folder_name = Dir(folder_path, vbDirectory)
i = 1
Do Until folder_name = ""
If folder_name <> "." And folder_name <> ".." And _
GetAttr(folder_path & folder_name) = vbDirectory Then
Cells(i + 3, 1) = folder_name
i = i + 1
End If
folder_name = Dir()
Loop
End Sub
ここではDir関数というものを活用することでフォルダ名を一括取得しています。
Dir関数について勉強したい方は以下の記事を参考にしてください。
【VBA】Dir関数の特性を詳細解説!ファイル確認や一括処理に超便利!
コードの記述が終わったらさっそくこいつを実行してみましょう。
※開発タブ⇒マクロ⇒folder_searchを選択⇒実行
今回探索を行うフォルダ(A2セルに記載しているフォルダ)の中身はこんな感じでしたね。
以下がさきほどのコードを実行した後の結果です。
問題なくすべてのフォルダ一覧を取得できていますね。
変更後のフォルダ名を記述する
変更したいフォルダ一覧が取得できたら、次はそれぞれのフォルダ名をどのように変更するかを入力していきましょう。
※変更したくないフォルダはクリアして消しておきましょう。
今回はこんな感じで変更後のフォルダ名を指定しました。
これでフォルダ名を変更するために必要な情報はすべてそろいましたね。
フォルダ名一括変更コードの作成、実行
最後にさきほどまでにエクセルシートに記述した内容をつかって、それぞれのフォルダ名を一括変更するVBAコードを記述⇒実行してみましょう。
まずはVBAコードの紹介です。
Sub folder_name_change()
'変数の型を宣言
Dim folder_path As String
Dim j As Integer
folder_path = Cells(2, 1) & "\"
j = 1
Do Until Cells(j + 3, 1) = ""
Name folder_path & Cells(j + 3, 1) As folder_path & Cells(j + 3, 2)
j = j + 1
Loop
End Sub
フォルダ名を変更するためには以下のスキルを使います。
これをシートの情報を参照しながら繰り返す、という作業を行っています。
最後に先ほどのコードを実行してみましょう。
※開発タブ⇒マクロ⇒folder_name_changeを選択⇒実行
以下が実行後のA2セルに記述したフォルダの中身です。
問題なくフォルダ名が変更できていますね。
おわりに
というわけで今回はフォルダ名を一括変更する際に便利なマクロの作り方をご紹介しました。
ぜひこういったスキルを身に着け、業務効率化を進めていきましょう。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント
はじめまして。
フォルダ名の変換ですがサブフォルダにも対応するにはどうしたらいいでしょうか?
ご教授のほど、宜しくお願いいたします
ご質問ありがとうございます。
基本的にやることは同じで一覧で取得したフォルダの中にあるサブフォルダを一つ一つ取得していくしかないですね。
自動でやるとこもできますが、ある程度のコード修正は必要です。