HOME > 即効テクニック > Excel VBA > ファイル操作関連のテクニック > 保存先フォルダが存在しない場合はフォルダを作成してブックを保存する

保存先フォルダが存在しない場合はフォルダを作成してブックを保存する|Excel VBA

ファイル操作関連のテクニック

保存先フォルダが存在しない場合はフォルダを作成してブックを保存する

(Excel 2000/2002/2003/2007/2010/2013/2016)

次のマクロは「C:\Data」フォルダ内の今日の日付フォルダに「Sample.xlsx」という名前でブックを保存します。
「C:\Data」フォルダ内に今日の日付フォルダがあるかどうかをチェックし、なければフォルダを作成して保存します。ただし、「C:\Data」フォルダは存在するものとします。

フォルダがあるかどうかは、Dir関数でチェックします。

Dir(PathName, Attributes)

引数AttibutesにvbDirectoryを指定すると、引数PathNameで指定したフォルダがあればフォルダ名を返し、なければ長さ0の文字列「""」を返します。
フォルダがない場合は、MkDirステートメントでフォルダを作成します。

Sub Sample()
    Dim SaveDir As String
    Dim myBook As Workbook
    
    Set myBook = Workbooks.Add
    '作成したブックに何らかの処理を行う
    
    SaveDir = "C:\Data\" & Format(Date, "yyyymmdd")
    
    ' "C:\Data"の下に今日の日付のフォルダがなければ作成する
    If Dir(SaveDir, vbDirectory) = "" Then
        MkDir SaveDir
    End If
    
    Application.DisplayAlerts = False
    With myBook
        .SaveAs SaveDir & "\Sample.xlsx"
        .Close
    End With
    Application.DisplayAlerts = True
End Sub

このコードは、上位の「 C:\Data」 フォルダが存在していることが前提です。
上位階層のフォルダも存在するかどうかがわからない場合は、「保存先フォルダを作成してブックを保存する(複数階層のフォルダ)」を参照してください。