【コピペでOK】エクセルでフォルダ自動作成!VBAマクロでの一括作成方法!

コピペで使えるコード集

【コピペで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列に記載します。

1行目には¥作成フォルダー名①」のような項目を記載してください。

手順3:マクロ実行(作成場所選択)

マクロを実行すると、作成場所の選択ウィンドウが開きます。

フォルダを作りたい場所を選んで、「OK」を選択してください。

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

さいごに

今回はVBAを使って、フォルダを自動作成する方法について紹介しました。今回は一括作成でしたが、リストの一番下に書かれたフォルダを作成するようにVBAを変更すれば、台帳に追加した内容のフォルダを自動作成することもできます。

ループ処理を行っている部分を変更することで実装可能ですが、リクエストがあれば記事にしますので、コメント等いただけると嬉しいです。

当ブログでは、ほかにもたくさんの効率化に関する情報を発信していますので、他の記事もぜひご覧ください!

コメント

タイトルとURLをコピーしました