つらつら Excel VBA

私の備忘録です。

フォルダを上階層から全部作る

指定したフォルダが無ければ全部作ってしまえば良い。
仕様変更が原因だったとしてもエラーにならなくなる!怒られてしまえ!

'フォルダが無ければ上階層から全部作る。
Function makeFolder(fullPath As String) As Boolean
    
    On Error GoTo err1
    
    'fullPath = Replace(fullPath, "/", "\")
    
    Dim var: var = Split(fullPath, "\")
    Dim addPath As String: addPath = ""
    
    Dim folderName As String
    
    Dim i As Integer
    For i = LBound(var) To UBound(var)
        
        folderName = CStr(var(i))
        
        If i = UBound(var) Or folderName = "" Then Exit For
        
        addPath = addPath & var(i) & "\"
        
        If Dir(addPath, vbDirectory) = "" Then
            MkDir addPath
        End If
        
    Next
    
    makeFolder = True
    
    Exit Function
    
err1:
    Debug.Print addPath '作成失敗したフォルダ
    makeFolder = False
    
End Function

フルパスの末尾はファイル名を想定してるので、配列の最後は何もしてません。

以上。