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年~ 小学校で開始
  • 2021年~ 中学校で開始
  • 2022年~ 高等学校で開始
  • 2024年~ 高校受験科目に新設

学校での必修化に向けて、すでに子ども向けプログラミングスクールが多数開校されています。

あと数年もすれば、あたりまえにプログラミングができる新入社員がやってくる時代になります。

プログラミングってなに?どんなもの?まずは無料体験から試してみませんか?

 

1週間の無料体験あり!
オンラインスクール実績No.1!