ねぇもりさん、エクセルシートのリストからWindowsのフォルダを作る方法ないかな?
手作業でポチポチ作るのめんどうだよ
手作業でポチポチ作るのめんどうだよ
もり
それならVBAでツールを作っちゃおう!
この記事では2点を紹介します。
- Excelシートに用意した「フォルダパス」「フォルダ名」のリストから、Windowsのフォルダを一括作成するマクロの作り方
- 作成したマクロを、ボタンのワンクリックで実行する方法
もり
完成版をご覧あれ!フォルダ100個くらいなら一瞬で作れちゃうよ~
画面左側がExcelツール・右側がフォルダです。空のフォルダに、フォルダ1~100が一瞬で作成されるのが確認できます。
スポンサーリンク
Contents
エクセルシートにパスとフォルダ名を入力
シートのA列・B列にこのように準備します。
- A2セル → 作成フォルダの上位パスを入力※末尾に円マーク(\)は不要
- B列 → 作成したいフォルダ名を2行目以降に入力
フォルダ一括作成のソースコード
下記のコードを標準モジュールに貼り付けて使用してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Sub mkdirFolder() Dim Path As String '作成予定フォルダの上位パス Path = Range("A2").Value Dim i As Long For i = 2 To Range("B2").End(xlDown).Row Dim FolderName As String '作成するフォルダ名 FolderName = Cells(i, 2).Value Dim NewDirPath As String '作成予定のフォルダパス NewDirPath = Path & "\" & FolderName '作成予定フォルダと同名のフォルダの存在有無を確認 If Dir(NewDirPath, vbDirectory) = "" Then MkDir Path & "\" & FolderName End If Next i MsgBox "終了しました。" End Sub |
【ポイント1】B列の最終行まで処理を繰り返す
B列の2行目以降に入力されている分、フォルダを作成します(理論上、Excel最終行まで作成可能?)
1 2 3 |
For i = 2 To Range("B2").End(xlDown).Row 'フォルダ作成処理 Next i |
B2セルから下方向にセルを検索し、データが存在する最終行まで処理を繰り返します。
【ポイント2】Dir関数で同じ名前のフォルダをチェック
Windowsでフォルダを作る時、同じ名前のフォルダが既に存在する場合、確認メッセージが現れます。
マクロ実行が中断されてしまうので、それを回避するために、Dir関数を使用して同名フォルダの存在有無をチェックし、同名フォルダが存在しない場合のみ、作成します。
1 2 3 |
If Dir(NewDirPath, vbDirectory) = "" Then MkDir Path & "\" & FolderName End If |
Dir(フォルダパス, 属性)
- フォルダパス:作成予定のフォルダのフルパスを指定
- 属性:「フォルダ」を意味するvbDirectoryを指定
第1引数に指定したフォルダパスが見つからない場合、Dir関数は空文字が戻ります。
たとえば、
Dir(“C:\フォルダ一括作成\フォルダ1“, vbDirectory)と指定すると、フォルダ1が存在しない場合、空文字が返ります。
If文を使用して、空文字が返ってきた場合のみ、フォルダを作成します。
フォームコントロールで実行ボタンを作る
ねぇ、エディタを開かずに、ボタンをクリックするだけでフォルダが作れたらもっと便利だね
もり
フォームコントロールでボタンを作ってみよう!
開発タブ→挿入→ボタン(フォームコントロール)を選択
エクセルシート上の適当なところで「マウスクリック→ドラッグアンドドロップ」でボタンを作成、マクロを登録します。
ボタンに付けるテキストは変更可能です。
こんな風にボタンを用意しておくと、VBAの操作がわからない人でも使えるので便利ですね!
もり
プログラミングを使わずにサクッと作れちゃう方法もあるんだよ
こっちも見てみてね~
こっちも見てみてね~
【Windows】Excelのリストから複数フォルダを一括作成する(プログラミング不要)Windowsのフォルダを一括作成する方法を紹介しています。
フリーソフト不要・プログラミング不要!Excelとコマンドプロンプトを使用します。...
スポンサーリンク
スポンサーリンク