【Excel VBA】指定フォルダが存在しない場合に作成するマクロ【コピペ利用でOK】

目次

指定のフォルダが存在しない場合に作成するマクロ

VBA でファイルを保存する際など、ファイルの保存先フォルダが存在しなかったらそのフォルダを作成してからファイルを保存したい場合があります。

指定のフォルダが存在しない場合に作成するマクロ(コピペ利用でOK)

以下のプロシージャ MakeDirIfNotExist は、引数としてフォルダパスを受け取り、パスに含まれる各フォルダについて存在チェックをして、存在しない場合はそのフォルダを作成します。

Sub MakeDirIfNotExist(ByVal tgtpath$)
    Dim dirpath$, tgtdrive$
    Dim subpath As Variant
    Dim i&
    
    If InStr(tgtpath, ":\") = 0 Then
        MsgBox "入力パスの形式が不正です"
        Exit Sub
    End If
    If Right(tgtpath, 1) = "\" Then
        tgtpath = Left(tgtpath, Len(tgtpath) - 1)
    End If
    
    tgtdrive = Left(tgtpath, 3)
    subpath = Split(Mid(tgtpath, 4), "\")
    dirpath = tgtdrive
    
    For i = LBound(subpath) To UBound(subpath)
        dirpath = dirpath & subpath(i) & "\"
        If Dir(dirpath, vbDirectory) = "" Then
            MkDir dirpath
        End If
    Next
    
End Sub
  • 入力:フォルダパスとなる文字列(フルパス)
  • 出力:パスに含まれるフォルダが存在しない場合はそのフォルダを作成

使用例

以下のように、main プロシージャから MakeDirIfNotExist を呼び出し、引数として ThisWorkbook.Path & "\hoge\hoge\hoge" を渡します。

Sub main()
    
    MakeDirIfNotExist ThisWorkbook.Path & "\hoge\hoge\hoge"
    
End Sub

Excel ブックが保存されているフォルダ内に、hoge というフォルダが存在しない状況で上記の main プロシージャを実行した場合、Excel ブックが保存されているフォルダ内に以下の 3 つのフォルダが作成されます。

  • \hoge フォルダ
  • \hoge\hoge フォルダ
  • \hoge\hoge\hoge フォルダ

あわせて読みたい
Excel VBA マクロ作成用情報まとめ 【初学者向け情報】 【Excel VBA】初心者からマクロを作成できるようになるまでの学習ロードマップ 【Excel VBA マクロ独学者・初心者向け】VBA 学習の第一歩【このペー...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

とあるエンジニアです。

当ブログでは Excel VBA のマクロ作成に役立つ情報を中心に情報展開しています。

Excel VBA マクロを使いこなして時短し、人生の質『QOL』を高めていきましょう。

プロフ画像:Copyright (C) SQUARE ENIX CO., LTD. All Rights Reserved.

目次