【コピペでOK】エクセルでフォルダ自動作成!VBAマクロでの一括作成方法!
決まった名前のファイルを毎回作るのが面倒…
大量のファイルを作って名前変更する作業が手間がかかる
社内ルール通りの名前で案件ごとにフォルダを作成したり、日付別のファイルを大量に作るような業務ってまだまだ残っていると思います。そんな時、1つずつ右クリックで作成するのって、面倒ですよね。
そんな悩みをで解決してくれるのが、VBAを使ったフォルダ自動作成の方法です。
今回紹介するVBAコードをコピペするだけで、エクセルに入力したリストからフォルダを一括で作成できます。初心者にもやさしいコードなので、業務効率化の第一歩としてもおすすめです!
また「VBAは初めてでよく分からない…」という方のために、完成済みエクセルファイルも用意しました。ダウンロードしてすぐ試すこともできるので、そちらもぜひ活用してみてください。
このブログでは、コピペで使えるVBAなど、効率化に関する情報を発信しています。この記事が参考になれば、ぜひほかの記事も見てみてください!
【結論】コピペで使えるフォルダ作成VBA
以下のVBAコードをそのままエクセルに貼り付ければ、セルの内容に従ってフォルダを一括で作成できます。
実行には、あらかじめ項目の作成が必要です。使い方の詳細は後ほど解説します。
Sub CreateFolders()
Dim folderPath As String
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim parentFolder As String
Dim subFolder As String
Dim targetPath As String
Dim fileDialog As Object
' フォルダ選択ダイアログを表示
Set fileDialog = Application.fileDialog(msoFileDialogFolderPicker)
fileDialog.Title = "CSVファイルが入っているフォルダを選択してください"
If fileDialog.Show = -1 Then
folderPath = fileDialog.SelectedItems(1) ' 選択したフォルダパスを取得
Else
MsgBox "フォルダが選択されていません。処理を中止します。"
Exit Sub
End If
Set ws = ActiveSheet ' アクティブシートを使用
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
parentFolder = ws.Cells(i, 1).Value
subFolder = ws.Cells(i, 2).Value
' 親フォルダ作成
If Len(parentFolder) > 0 Then
If Dir(folderPath & "\" & parentFolder, vbDirectory) = "" Then
MkDir folderPath & "\" & parentFolder
End If
' サブフォルダ作成(B列に値がある場合)
If Len(subFolder) > 0 Then
targetPath = folderPath & "\" & parentFolder & "\" & subFolder
If Dir(targetPath, vbDirectory) = "" Then
MkDir targetPath
End If
End If
End If
Next i
MsgBox "フォルダの作成が完了しました。"
End Sub
【番外】すぐ使えるエクセルファイル
VBAが分からないという方向けに、VBAが入ったエクセルファイルを用意しました。ここに内容を書き込むだけで、簡単にフォルダが自動作成できます。

※ウイルスではもちろんありませんが、マクロ付きのため、自己責任でお願いします。
フォルダ自動作成VBAの動作
エクセルに作りたいフォルダ名を書き込みます。
作ったフォルダの中にもフォルダが作りたい場合も、あらかじめリストに記載します。

あとはマクロを実行するだけで、フォルダが自動作成されます。

フォルダ自動作成VBAの使い方
ここからはVBAのコピペ方法を含めて、使い方を紹介します。
手順1:エクセルの準備
まず、エクセルのシートに以下のタイトルを入力してください
・A列:作成フォルダー名①
・B列:フォルダー①の中に作るフォルダー

直接この名前をVBAで認識はしていません。ただ、リスト入力の間違い防止になるため、この内容で入力してください。
手順2:VBAの埋込/ボタンの挿入
エクセルの「開発」タブから「Visual Basic」エディタを開きます。そしてVBAコードを「標準モジュール」に貼り付けます。
「開発」を出す設定やコードの書き方は、別の記事で詳しく解説しています。こちらの記事もぜひ参考にしてみてください。
手順3:作成したいフォルダを記載
エクセルの2列目以降のA列に作成したいフォルダ名を書きます。
A列のフォルダの中にフォルダを作りたい場合は、B列に記載します。

手順3:マクロ実行(作成場所選択)
マクロを実行すると、作成場所の選択ウィンドウが開きます。
フォルダを作りたい場所を選んで、「OK」を選択してください。

しばらくすると「ファイルの作成が完了しました」と表示され、フォルダが自動作成されます。

さいごに
今回はVBAを使って、フォルダを自動作成する方法について紹介しました。今回は一括作成でしたが、リストの一番下に書かれたフォルダを作成するようにVBAを変更すれば、台帳に追加した内容のフォルダを自動作成することもできます。
ループ処理を行っている部分を変更することで実装可能ですが、リクエストがあれば記事にしますので、コメント等いただけると嬉しいです。
当ブログでは、ほかにもたくさんの効率化に関する情報を発信していますので、他の記事もぜひご覧ください!
コメント