エクセル術【マクロVBA】

VBAでフォルダ作成!一括で作成したい大量フォルダを瞬殺【階層も】

VBA フォルダ 作成 一括 大量 階層 アイキャッチ 画像 イラスト かわいい

管理人みぃ
管理人みぃ
猫の手(エクセルVBA)はどんどん借りよう!!

100個以上のフォルダ作成が1秒以内に終わります♪

VBA フォルダ 作成 一括 大量 階層
Option Explicit

Sub FolderIkkatsu()
    Application.ScreenUpdating = False
    Dim i
    For i = 2 To 141
        
        '1階層目のフォルダ
        MkDir ThisWorkbook.Path & "\" & Cells(i, 1).Value
        
        '2階層目のフォルダ
        MkDir ThisWorkbook.Path & "\" & Cells(i, 1).Value & "\" & Cells(i, 2).Value
        
    Next
End Sub

▼ ダウンロードはこちら ▼

管理人みぃ
管理人みぃ
↑このコードで2階層も一発にゃん♪

応用すれば、3階層~4階層~も可能。

エクセルVBAによる【フォルダ作成プロシージャ】をご紹介します。

2階層大量フォルダ一括作成するコードも書きましたので、ぜひ参考にされてみてくださいね。

 

猫の手も借りたい人は、エクセルマクロで超面倒なフォルダ作成を自動化しましょう!!


スポンサーリンク




VBAで大量フォルダを一括作成してみよう!!

Option Explicit

Sub FolderIkkatsu()
    Application.ScreenUpdating = False
    Dim i
    For i = 2 To 141
        MkDir ThisWorkbook.Path & "\" & Cells(i, 1).Value
    Next
End Sub
管理人みぃ
管理人みぃ
まずは1階層だけのフォルダ作成。

↑上のように、10行足らずのコードで大量のフォルダを一括でつくることができます。

 

試しに、実際のわたしの作業風景を画像でお伝えしますと、

まずは、作りたいフォルダ名のリストをエクセルシートに入力。

VBA フォルダ 作成 一括 大量 階層

(2列目の「英語名」は2階層目のフォルダ作成用ですので、ここでは無視してください。)

 

そして、

Dim i
    For i = 2 To 141
        MkDir ThisWorkbook.Path & "\" & Cells(i, 1).Value

↑このコードによって、1列目に入力された【台風の名前リスト】をフォルダ名として、フォルダの一括作成に適用されます。

典型的なFor文ループによって、エクセルシートの1列目からフォルダ名を読み取り、「MkDir」でフォルダを自動作成してくれる感じですね。

 

つまり、あなたが生成したいフォルダの1階層目をエクセルシートの1列目に入力しておけばOKなワケですね。

VBA フォルダ 作成 一括 大量 階層

今回のわたしの例では、台風の名前リストを1階層目のフォルダにしてみました。

管理人みぃ
管理人みぃ
なぜ、台風の名前にしたのかは・・・謎。

 

あとは、「F5」キーをVBEの画面で押せば、

VBA フォルダ 作成 一括 大量 階層 VBA フォルダ 作成 一括 大量 階層

↑このようにサクッと一括でフォルダが作成できます。

 

ただし、

MkDir ThisWorkbook.Path & "\" & Cells(i, 1).Value

↑このコードにあります通り、フォルダを作成したいディレクトリにエクセルファイルを事前に移動した状態で実行しましょう。

VBA フォルダ 作成 一括 大量 階層

↑今回のVBAコードでは、エクセルファイルが置かれている場所にて、新たなフォルダが作成されるコードです。

 

なので、お目当ての場所にエクセルファイルを置いてから、VBAマクロを実行してください。


スポンサーリンク




大量の2階層フォルダもエクセルVBAで一括作成!!

VBA フォルダ 作成 一括 大量 階層
管理人みぃ
管理人みぃ
2階層目のフォルダ作成も瞬殺にゃん♪

一方で、先ほども書きましたが、エクセルシートの2列目が2階層目のフォルダとなります。

 

2階層目のフォルダ作成も、1階層目と同じく、

VBA フォルダ 作成 一括 大量 階層

↑このように、

  • 1列目が1階層目のフォルダ名
  • 2列目が2階層目のフォルダ名

という設定をしておけばOK。

 

2階層目も含んだVBAのコードは、

Option Explicit

Sub FolderIkkatsu()
    Application.ScreenUpdating = False
    Dim i
    For i = 2 To 141
        MkDir ThisWorkbook.Path & "\" & Cells(i, 1).Value
        MkDir ThisWorkbook.Path & "\" & Cells(i, 1).Value & "\" & Cells(i, 2).Value
    Next
End Sub

となります。

1階層目のコードを基に、2階層目のコードを簡単につくることができます。

 

さらに、3階層目、4階層目・・・と増やしたいケースでは、

  • エクセルシートの3列目、4列目~を入力しておく。
  • そして、VBAのコードも1列目⇒2列目と増やしたのと同じ方法で、3列目~4列目のコードも同様に増やす。

という風にシンプルな修正のみで、階層を意識しながら大量のフォルダを作成できるでしょう。

 

また、本来ならば、

  • 「2階層目のフォルダを作成する前に、1階層目のフォルダがあるかどうか??」
  • 「エクセルファイルを置いた位置に関係なく、よりスマートにファイルパスを指定したい!!」

など、環境テストやユーティリティが必要不可欠でしょう。

 

しかし、本記事ではそういった部分はカットして、「とりあえず動けばOK」という段階で解説をしてきました。

今後、「1階層目フォルダの有無チェック」などの追加仕様は、この記事か、別の記事にて書いていきます。

(乞うご期待。)

 

管理人みぃ
管理人みぃ
エクセル以外にも方法があるよ♪

また、【バッチファイルを利用した方法】もこちらで解説しています。

バッチファイル フォルダ 作成 仕事 便利
バッチファイルでフォルダ作成を自動化!仕事に便利なWindowsツール!Windowsのバッチファイルを使えば、フォルダ作成の自動化を簡単にできます。 【複数のフォルダ】や【階層も含めたフォルダ】を一括で作ることができますよ。 仕事の効率化に便利なバッチファイルで、パソコン作業をスピードUPさせましょう!!...

スポンサーリンク




管理人みぃ
管理人みぃ
SNSでのシェア(おすそ分け)もよろしくお願いします。

\Share Mie/

Thank you 〜 また来てね♪


→ ポチっと応援よろしくにゃん♪

管理人みぃ
管理人みぃ
▲ ▲ ▲

もしよかったら

応援よろしくお願いします^^

COMMENT

メールアドレスが公開されることはありません。