[Excel/Access VBA]超簡単!たった1行でサブフォルダのサブフォルダまで作成する方法!

VBA(Access)
この記事は約2分で読めます。

概要

ExcelやAccessでサブフォルダのサブフォルダまで1発で作りたいってなったときに、皆さんはどうされていますか?

MkDirやFilesystemObjectのCreateFolderで1行で書こうとしても、「サブフォルダが存在しません」等のエラーが出て、もやもやすると思います。
例)FSO.CreateFolder(“C:\Users\UserName\Desktop\test\test2\test3”)

玄人の方であれば、APIを使って書く方もいますが、モジュールの一番上にAPI設定を書かないといけないので実質1行ではありません。(SHCreateDirectoryEx等)

意外とできそうでできないですよね。
そんな方に簡単な解決方法を教えます。

 

VBAからコマンドプロンプトを使おう!

結果から伝えると、VBAからコマンドプロンプトのmkdirコマンドを使って作成します。
作成方法は以下のとおりです。

たった1行でできました!

 

もし、参照設定も変数設定もしっかりやりたいという方であれば、次のコードを使用しましょう。
参照設定で、「Windows Script Host Object Model」にチェックを入れてください。

 

もし、フォルダ作成が完了する前に次の処理に進んでエラーが出るときは、コマンド処理が完了するまで待機する処理を追加しましょう。

 

どうだったでしょうか?コマンドプロンプトを使うと意外と楽になる処理が意外とあります。
最終階層までのファイル一覧の取得もFileSystemObjectでやるよりもコマンドプロンプトでやるほうが早かったりするのでおすすめです。今度記事にします。

---コメント---