どうもマサヤです!
「このフォルダ配下に一括でフォルダを作成したい!」
そんな、あなたと私のためにコピペで使えるコードを紹介します!※結構、使うので手間を減らすためにコピペして使えるようにしました。
任意フォルダにフォルダを一括で作成するコード
取得したファイル一覧をセルに出力しています。
Sub createFolder() Set fso = CreateObject("Scripting.FileSystemObject") baseUrl = Cells(2, 2) i = 4 '空白になるまでフォルダ作成を実行 Do Until Cells(i, 2) = "" 'すでに同じ名前のフォルダがあれば作成せずに、次のフォルダ作成へ If Not fso.FolderExists(baseUrl & "\" & Cells(i, 2)) Then fso.createFolder baseUrl & "\" & Cells(i, 2) End If i = i + 1 Loop MsgBox "フォルダ作成完了" End Sub
実行結果イメージ【動画】
実行結果は下記の動画のようになります。
フォルダ作成手順
手順といっても、5ステップで簡単です。
- フォルダを作成したい場所を「B2セル」に入力
- 一括で作成したいフォルダ名をB列4行目以降に入力
- Alt+F11でVBEを開く
- 標準モジュールを作成
- 上記コードをコピーして、貼り付ける
- F5 or ▶ を押して、コードを実行
※VBE起動からコードコピーの流れこちらで確認できます。(別コードをコピーしていますが操作は一緒です)
まとめ
この前、仕事で200個ほどフォルダを作成するシーンがありました。200個のフォルダを作業で作ろうとしたら、右クリック⇒新規作成⇒フォルダ⇒フォルダ名を入力 or コピーしてようやく一つ作れます。
1つ作るのに5秒として、5 秒× 200個 = 1000秒、なんと約16分。最速で機械のようにアイドルタイムなしで16分、実際はミスの可能性もあるのでもっと時間が掛かります。
ただ、既にこの方法を知っていたので、着手からフォルダ作成まで3分もかかりませんでした。その度、手作業でフォルダを作成していた時代を思い出し、本当に「VBAを知って良かった!」と実感しています。
あたなもフォルダ作成といった単純作業に苦しんでいるなら、ぜひこの方法をお試しください!
コメント