VBA

【ExcelVBA】Windowsのフォルダを一括作成するマクロ

ねぇもりさん、エクセルシートのリストからWindowsのフォルダを作る方法ないかな?
手作業でポチポチ作るのめんどうだよ
もり
もり
それならVBAでツールを作っちゃおう!

この記事では2点を紹介します。

  1. Excelシートに用意した「フォルダパス」「フォルダ名」のリストから、Windowsのフォルダを一括作成するマクロの作り方
  2. 作成したマクロを、ボタンのワンクリックで実行する方法

 

vbamkdir1

 

もり
もり
完成版をご覧あれ!フォルダ100個くらいなら一瞬で作れちゃうよ~

画面左側がExcelツール・右側がフォルダです。空のフォルダに、フォルダ1~100が一瞬で作成されるのが確認できます。

エクセルシートにパスとフォルダ名を入力

シートのA列・B列にこのように準備します。

  • A2セル → 作成フォルダの上位パスを入力※末尾に円マーク(\)は不要
  • B列 → 作成したいフォルダ名を2行目以降に入力
vbamkdir2

フォルダ一括作成のソースコード

下記のコードを標準モジュールに貼り付けて使用してください。

【ポイント1】B列の最終行まで処理を繰り返す

B列の2行目以降に入力されている分、フォルダを作成します(理論上、Excel最終行まで作成可能?)

B2セルから下方向にセルを検索し、データが存在する最終行まで処理を繰り返します。

【ポイント2】Dir関数で同じ名前のフォルダをチェック

Windowsでフォルダを作る時、同じ名前のフォルダが既に存在する場合、確認メッセージが現れます。

vbamkdir7

マクロ実行が中断されてしまうので、それを回避するために、Dir関数を使用して同名フォルダの存在有無をチェックし、同名フォルダが存在しない場合のみ、作成します。

Dir(フォルダパス, 属性)

  • フォルダパス:作成予定のフォルダのフルパスを指定
  • 属性:「フォルダ」を意味するvbDirectoryを指定

第1引数に指定したフォルダパスが見つからない場合、Dir関数は空文字が戻ります。

たとえば、

Dir(“C:\フォルダ一括作成\フォルダ1“, vbDirectory)と指定すると、フォルダ1が存在しない場合、空文字が返ります。

If文を使用して、空文字が返ってきた場合のみ、フォルダを作成します。

フォームコントロールで実行ボタンを作る

ねぇ、エディタを開かずに、ボタンをクリックするだけでフォルダが作れたらもっと便利だね
もり
もり
フォームコントロールでボタンを作ってみよう!

開発タブ→挿入→ボタン(フォームコントロール)を選択

vbamkdir3

 

エクセルシート上の適当なところで「マウスクリック→ドラッグアンドドロップ」でボタンを作成、マクロを登録します。

vbamkdir4

 

ボタンに付けるテキストは変更可能です。

vbamkdir5

 

こんな風にボタンを用意しておくと、VBAの操作がわからない人でも使えるので便利ですね!

vbamkdir6

 

もり
もり
プログラミングを使わずにサクッと作れちゃう方法もあるんだよ
こっちも見てみてね~
【Windows】Excelのリストから複数フォルダを一括作成する(プログラミング不要)Windowsのフォルダを一括作成する方法を紹介しています。 フリーソフト不要・プログラミング不要!Excelとコマンドプロンプトを使用します。...
2020年・小学校でプログラミング教育が必修化

2020年、いよいよ小学校でプログラミング授業が始まります。続く2021年からは「中学校」で開始。2022年からは「高校」でも導入されます。

あと何年かしたら、あたりまえにプログラミングを使いこなす新入社員が入ってくるかもしれません。2020年、大人も一緒に学んでみませんか?

1週間のオンライン無料体験
いつでもどこでも今すぐ視聴OK