【VBA】ファイルを保存するフォルダが存在しない場合は作成する

PR

サンプルプログラム概要

・作成対象のフォルダ名の最後の「\」はあっても無くても良い

PR

サンプルプログラム

'変数の宣言を必須
Option Explicit

Sub Sample()
    
    'フォルダ名の最後の「\」はあっても無くても良い
    Const folder As String = "C:\Users\user\Desktop\temp\aaa\bbb\ccc\"
    
    '保存フォルダが存在しなかったら作成
    Call creatSaveFolder(folder)

End Sub

'保存フォルダが存在しなかったら作成
Private Function creatSaveFolder(folder As String)
    
    Dim fso As Object
    Dim parentFolder As String
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    '親フォルダ名を取得
    parentFolder = fso.GetParentFolderName(folder)
    
    If Not fso.FolderExists(parentFolder) Then
        '親フォルダが存在しない場合、
        '親フォルダを対象に自身を再呼び出し
        Call creatSaveFolder(parentFolder)
    End If
    
    'フォルダを作成
    fso.CreateFolder folder
    
    '後片付け
    Set fso = Nothing
    
End Function
タイトルとURLをコピーしました