マクロで複数フォルダの名前を指定して一括作成するには?

この記事は約4分で読めます。
スポンサードリンク

複数のフォルダを、指定した名前で新しく一括作成するという作業を、Excelマクロを使ってやっつけました。

7行のコードを書くだけで、800以上ものフォルダを、任意の名前で一気に生成できてしまったので、その手順をご紹介しようと思う次第です。

手順は、簡単に言いますと

  1. フォルダを作成する場所を作る
  2. Excelでフォルダ名のリストを作成し、同じ場所に保存する
  3. リストと同じExcelファイルにマクロを書いて実行する

というものです。

まず、フォルダ名のリストを用意します。ここでは例として「agehachou」から「awaodori」まで29個のファイルを作成することにしました。

リストはExcelで用意します。Excelで新規ブックを作成して、セルにフォルダ名を入力。入力できたら、フォルダを新規作成するのと同じ場所に保存します。

この際、マクロが保存できるように、拡張子は「.xlsm」にしてください。ファイル名は何でもOK。ここでは「フォルダ整理.xlsm」としました。

次に、キーボードのAlt+[F11]を押して、マクロの編集画面「VBE(ビジュアルベーシックエディター)」を起動します。起動したら、メニュー「挿入」から「標準モジュール」を選択。

表示されたウィンドウに以下のようなコードを書きます。

—————————
Sub フォルダ作成()

For gyou = 1 To 29

Namae_List = Workbooks(“フォルダ整理.xlsm”).Sheets(“Sheet1”).Cells(gyou, 1).Value
New_Folder = ThisWorkbook.Path & “¥” & Sozai_Namae

MkDir New_Folder

Next

End Sub
—————————
※そのまま貼り付ける場合は、¥を半角に

ここではとりあえず、

  • gyou …読み込むリストの行番号
  • Namae_List … リストに書かれたフォルダ名
  • New_Folder … 新規作成するフォルダの場所と名前

と考えてください。

日本語に翻訳しながら説明していきますと、

For gyou = 1 To 29
→1行目から29行目まで(例:リストが2行目から300行目にわたる場合は、2 To 300)

Namae_List = Workbooks(“フォルダ整理.xlsm”).Sheets(“Sheet1”).Cells(gyou, 1).Value
→リストから読み込んだフォルダ名をNamae_Listとして指定
   (ブック「フォルダ整理.xlsm」のSheet1のA列「gyou」行目のセルの値)

New_Folder = ThisWorkbook.Path & “¥” & Sozai_Namae
→新規作成するフォルダの場所と名前をNew_Folderとして指定
(このマクロが書かれたExcelブックと同じ場所に、Namae_Listという名前で)

MkDir New_Folder
→New_Folderで指定したとおりフォルダを新規作成

となります。

「Sub フォルダ作成()」と「End Sub」はマクロの開始と終了を宣言するおまじないみたいなもんです。Subのあとの「フォルダ作成」の部分は、マクロの名前。記号は「_(アンダーバー)」意外NG、数字で始まる名前も不可というルールさえ守れば自由です。

あと、「gyou」「Namae_List」「New_Folder」の部分も自由に設定することができますので、分かりやすい名前を設定してください(これらは「変数」といいまして、いろいろルールはあるのですが今回は割愛)。

とりあえず、複数のフォルダを、指定した名前で新しく一括作成するという作業を手っ取り早く行いたいという方は、この記事のコードをお試しいただければと思います。

ちなみに私は、運営中の素材屋小秋の作品ファイルを整理するのに、この手法を使いました。

ここ数年、配布するファイル(png形式)や元ファイル(svg形式)が同じ階層にだらしなく散らばっていて、管理がしにくい状態が長らく続いておりまして。

例えば、agehachou-1.pngとagehachou-1.svgは同じ「agehachou」フォルダに入れた方がいいよなあと思いつつ、面倒だったので放置していたのですが、マクロで一気に問題解決。

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