保存先フォルダが存在しない場合はフォルダを作成してブックを保存する|Excel VBA |
次のマクロは「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」 フォルダが存在していることが前提です。
上位階層のフォルダも存在するかどうかがわからない場合は、「保存先フォルダを作成してブックを保存する(複数階層のフォルダ)」を参照してください。