フォルダを作成する構文
早速結論。フォルダを作成する構文は次のとおりです。ただし深い階層の場合、その親のフォルダが作成されていないとエラーになる点に注意です(対処している関数はこの下に記載)
'フォルダを作成する
MkDir フォルダパス
'例
MkDir "C:\test"
フォルダを作成する
指定したフォルダを新規作成する関数です。
直前のフォルダないフォルダを作成しようとするとエラーになりますが、この関数は直前のフォルダも作成するため、深い階層のフォルダーを作成することも可能になっています。
引数 folderPath : 作成するフォルダのパス(文字列)
戻り値 True:作成成功、False:作成失敗
補足:ファイルパスの最後は\あり・なしどちらでも可。作りたいフォルダがすでにある場合Falseとなります。
Public Function createFolder(ByVal folderPath As String) As Boolean
On Error GoTo Catch
If Dir(folderPath, vbDirectory) <> "" Then
'作成したいフォルダが既にある場合
createFolder = False
Exit Function
End If
Dim tmp_path As String
Dim arr() As String
Dim i As Long
arr = Split(folderPath, "\")
tmp_path = arr(0)
'階層が深くなってもループで作成する
For i = 1 To UBound(arr)
tmp_path = tmp_path & "\" & arr(i)
If Dir(tmp_path, vbDirectory) = "" Then
MkDir tmp_path
End If
Next i
createFolder = True '正常終了
Exit Function
Catch:
createFolder = False
End Function
実行例
Debug.Print createFolder("C:\test\1")
' True
Debug.Print createFolder("C:\test\2")
' False