エクセルを使ったフォルダの整理整頓【 大量のデータを1クリックで操作可能 】
こんな悩みを、エクセルマクロを利用して解決します。
結論から言うと、フォルダ名やファイル名を操作するVBAを導入する!です。
私は大手電気管理会社に勤めていて、転勤が頻繁にあります。転勤族のほとんどの人が経験したことがあると思いますが、人によって異なるので、転勤先の職場でサーバー内のデータがグチャグチャになっていることがほとんどです。
転勤したらまずはサーバー内のデータを整理整頓する仕事から始まります。
この記事ではデータの整理整頓作業の効率を上げるために、VBAでフォルダやファイルを整理整頓する方法を紹介します。
目次
フォルダやファイルの整理整頓でやるべきこと
整理整頓作業で最も大切なことは、やるべきこを明確にし行動目標をたてることです。目標を設定せずに、なんとなく作業を始めると必ず挫折してしまいます。
整理整頓のやるべきこと
- 現状サーバー内のフォルダやファイルがどのように整理されているか把握する
- 現在使われていないフォルダやファイルを把握する
- 使われていないフォルダやファイルを削除していいか確認をとる
- フォルダやファイルの名前を統一されたものに変更する
整理整頓のやるべきことを全てこなすことができればばサーバー内のデータを整理整頓することができるはずです。整理整頓は時間がかかり大変な作業です。いっぺんにやろうとせず、一つ一つこなしていきましょう。
現状サーバー内のフォルダやファイルがどのように整理されているか把握する
サーバー内のフォルダ名やファイル名を一覧表にすると、どのようにデータが整理されているかを把握することができます。
ここでの問題が、データの名前を一覧表にする作業はかなり手間のかかる!ということです。一覧表を作ろうとして挫折する方が多いのではないでしょうか。そんなときVBAを使えば、フォルダ名やファイル名を取得して一覧表をすぐに作ることができます。
下記の記事でファイル名を取得して一覧表にするVBAを詳しく紹介しています。
記事の中では、コピーしてすぐに使えるサンプルVBAが紹介しているので気になる方は使ってみて下さい。
現在使われていないフォルダやファイルを把握する
データの整理に欠かせない処理が不要なフォルダやファイルを判別して削除する!ということです。よく「過去のフォルダ」や「使っていないフォルダ」を作って不要になったデータをとっておこうとする人がいますが、思い切って削除してしまいましょう。
大量のフォルダやファイルを使われていないかどうかを判別する方法として、データの名前からデータの作成日、最終更新日時、最終アクセス日時を取得するVBAがおすすめです。
このVBAは下記の記事で詳しく紹介しています。
記事の中では、コピーしてすぐに使えるサンプルVBAが紹介しているので気になる方は使ってみて下さい。
使われていないフォルダやファイルを削除していいか確認をとる
職場のサーバー内のデータはあなた個人だけの判断で勝手に削除しては絶対にいけません。たとえ最終更新日時がかなり前だからといって一人で判断せず、みんなの確認を得るようにしましょう。
みんなの確認をとるには資料を作らなければなりません。上記で紹介したデータの名前を取得して一覧表にするVBAとデータの名前からデータの作成日、最終更新日時、最終アクセス日時を取得するVBAを組み合わせることで、みんなの確認をとる資料をあっという間に作成することができます。
フォルダやファイルの名前を統一されたものに変更する
データの整理整頓では、どのようにファルダやファイルの名前をつけていくかが重要です。適当な名前をつけてしまっては後々フォルダやファイルの名前を変更したくなることがないようにしっかり方向性を決めましょう。
フォルダ名に番号を付ける
番号は4桁以上の数字を使うと後々便利です。もしフォルダの数が増えていってもファイル名の始まりが統一され見やすくなります。
使用頻度の高いフォルダには若い番号をナンバリングしましょう。フォルダが上に表示されるようになり見つけやすくなります。またフォルダを開いたときにキーボードで数字を入力すると、該当するフォルダを選択してくれるので素早くフォルダ検索を行うことができます。
フォルダの階層分けの計画をたてる
フォルダ整理を始める前にフォルダをどのように階層分けするか計画をしっかりたてましょう。
フォルダの階層分けの考え方
- 写真→撮影日→撮影場所→用途
- 写真→撮影場所→撮影日→用途
写真フォルダの次の階層に、撮影日フォルダにするのか!撮影場所フォルダにするのか!で運用の仕方がガラッと変わります。
私の仕事では撮影場所から写真データを探すことが多いので2つ目のやり方で階層分けをしています。撮影場所から写真データを探したとき写真フォルダの次に撮影日フォルダが表示されても目的の写真にたどりつかない!ということが発生してしまいます。どのようにフォルダを運用していくかをイメージして階層分けの計画をしっかりたてましょう。
データの整理整頓に使えるVBA
上記で紹介したファイルの名前を取得して一覧にするVBAやデータの名前からデータの作成日、最終更新日時、最終アクセス日時を取得するVBAの他にもデータの整理整頓に使えるVBAを紹介します。
データの整理整頓に使えるVBA
- 一覧表からフォルダを新規作成するVBA
- 一覧表からフォルダ名やファイル名を変更するVBA
上記のVBAは整理整頓作業以外にもいろんな使い方ができます。フォルダやファイル名を操作することが多い方は参考にしてみてください。
一覧表からフォルダを新規作成するVBA
このVBAはフォルダを大量に作成したい!というときに効果を発揮します。都道県名のフォルダを作りたい!国名のフォルダを作りたい!というような作業のとき、一つ一つフォルダを新規作成して名前をつけていてはもの凄い時間と労力がかかってしまいます。労力のかかる作業はVBAを使って素早く処理してしまいましょう。
一覧表からフォルダを新規作成するVBAの使い方
サンプルVBA
1 | Sub フォルダ作成() |
2 | Dim FP As String |
3 | FP = Cells(2, 4) |
4 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
5 | For i = 4 To gyo |
6 | MkDir FP & “\" & Cells(i, 1).Value & Cells(i, 2).Value |
7 | Next |
8 | End Sub |
実行結果
一覧表から1クリックで大量のフォルダを作成することができました。
フォルダを新規作成しフォルダの名前を付ける!という作業は1つや2つであればすぐに終わりますが、大量のフォルダを作成する作業はとても手間と時間がかかります。
このVBAを使えば手間と時間を大幅に省略することができます。フォルダ整理をしていて大量にフォルダを作り直したいときにとても便利なVBAです。
一覧表からフォルダやファイルの名前を変更するVBA
一覧表から今あるフォルダの名前をいっきに変更したい!というときに効果を発揮します。大量のフォルダの名前を一つ一つ変更するのはもの凄い時間と労力が必要になります。手間のかかる作業はVBAを使って素早く処理してしまいましょう。
フォルダの名前を変更するVBAの使い方
- フォルダ整理したい場所をD2セルに入力
- フォルダ名を取得し一覧表にするVBAを実行
- 一覧表からフォルダ名を変更するVBAを実行
複数の人が扱うサーバー内のデータ整理を行う場合には、フォルダの名前を取得するVBAを実行してからすぐにフォルダの名前を変更するVBAを実行して下さい。フォルダの名前を変更するVBAを実行前にフォルダ名が他人に変更されてしまうと動作しない恐れがあります。
サンプルVBA
1 | Sub フォルダ名取得() |
2 | Dim FP As String |
3 | FP = Cells(2, 4) |
4 | Dim fl As FileSystemObject |
5 | Set fl = New FileSystemObject |
6 | Dim Fld As Folder |
7 | Set Fld = fl.GetFolder(FP & “\") |
8 | Dim FlName As Folder |
9 | For Each FlName In Fld.SubFolders |
10 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
11 | Cells(gyo + 1, 1) = FlName.Name |
12 | Next |
13 | Set fl = Nothing |
14 | End Sub |
1 | Sub フォルダ名更新日取得() |
2 | Dim FP As String |
3 | FP = Cells(2, 4) |
4 | Dim fl As FileSystemObject |
5 | |
6 | |
7 | Set fl = New FileSystemObject |
8 | Dim Fld As Folder |
9 | Dim Pa As String |
10 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
11 | For i = 4 To gyo |
12 | Pa = Cells(i, 1) |
13 | Set Fld = fl.GetFolder(FP & “\" & Pa) |
14 | Cells(i, 2) = Fld.DateCreated |
15 | Cells(i, 3) = Fld.DateLastModified |
16 | Cells(i, 4) = Fld.DateLastAccessed |
17 | Next |
18 | End Sub |
実行結果
このVBAを使えば簡単にフォルダやファイル名の編集が可能です。大量にデータの名前を編集したいときにとても便利なVBAです。
紹介しているサンプルVBAをコピーしてでも導入することは可能ですが、下記のnoteからVBAが設定されたエクセルファイルをダウンロードすることができます。気になる方は是非参考にしてみてください。
フォルダの整理整頓をやってみよう
フォルダの整理整頓は凄い手間のかかる作業なので途中で挫折してしまう方が多いのではないでしょか。今回紹介しているVBAを使えば、フォルダを一覧表にし、その一覧表からフォルダの名前を変更することができるので作業効率を格段にアップさせることが可能です。
ぐちゃぐちゃになっているフォルダはVBAを使って効率よく整理整頓していきましょう。
紹介しているサンプルVBAがうまく動作しない、もっとこういう感じの動作にしてほしいという質問や要望があれば下記の送信フォームから気軽にお問い合わせしてください。
会社では上司や、同僚からエクセルVBAの開発や修正の依頼やをよくうけます。
- こんな機能が欲しい
- VBAを実行すると変な結果になるから直してほしい
- こんな機能を追加してほしい
当ブログでは、エクセルVBAの開発依頼を承っております。気になる方は上記の送信フォームから気軽にお問合せしてください。
これからVBAを勉強をはじめるには
フォルダ名やファイル名を操作するVBAのように、VBAには仕事の効率をアップさせることができる機能がいろいろあります。VBAのプログラミングスキルを身に着けることで、今まで何時間もかかかっていた作業をほんの数分で処理することができるようになります。
VBAを基本から学びたい!という方におすすめなのが、オンラインプログラミング学習サービス【1st Step】です。
【1st Step】は初心者のためのプログラミング学習サービスで、C言語・java・VBAの3つのプログラミングの基礎をオンラインで勉強することができます。
- 基礎からプログラミングを勉強したい
- まとまった勉強時間の確保が難しい
- 途中で挫折したくない
上記のように考えている方に【1st Step】はおすすめです。
下記の記事では、オンラインプログラミング学習サービス【1st Step】の特徴や私の体験など詳しく紹介しています。
これからVBAの勉強を始めようと考えている方は是非参考にしてみてください。
ディスカッション
コメント一覧
まだ、コメントがありません