Excel

Excel VBAでフォルダを再帰的に作成するコード

Excel VBAからフォルダを階層的に深く掘り下げて作成する場合のコードを2つ紹介します。

VBA標準のMKDIRコマンドでは「C:¥上位フォルダ¥中間フォルダ¥下位フォルダ」とフォルダを指定した場合、「パスが見つかりません」とエラーになります。

よって、MKDIRコマンドだけで実装するのであれば以下の処理が必要になります。

MKDIR C:¥上位フォルダ
MKDIR C:¥上位フォルダ¥中間フォルダ
MKDIR C:¥上位フォルダ¥中間フォルダ¥下位フォルダ

単体でのフォルダ作成ならまだしも、自動化には不向きなコードですね。

 

フォルダを再帰的に作成するVBAコードその1

1つ目はDLLのSHCreateDirectoryExを使用するコードです。

 

コードを見れば処理内容もわかると思いますので、説明は割愛します。

 

 

フォルダを再帰的に作成するVBAコードその2

SHCreateDirectoryExが動かない場合やライブラリであるSHELL32.dllが制限を受けて動作しない場合の回避策として、2つ目はコマンドプロンプトのMKDIRコマンドで実装します。

 

フォルダ作成前に既存のフォルダ有無を確認しているため、アクセス権が無い場合などを除いてエラーになることは無いかと。

環境やスキルに合ったコードを利用してもらえればと思います。

 


社畜系インフラエンジニアブログのTOPへ戻る

コメントもらえたら泣いて喜びます!
  • この記事を書いた人
  • 最新記事

kanade

IT関連の仕事に従事し気付けば20余年。好きな言葉は「よくわからないけど動いてる」です。どうにかして生き残りたいアラフォーのIT系エンジニア。

-Excel
-

© 2024 インフラエンジニアブログカナデ