Sub TEST1()
'フォルダを作成する
MkDir "C:\Users\User\Desktop\TEST\1"
End Sub
新規のフォルダを作成してみます。
フォルダを作成してみる
実行すると、フォルダを作成することができます。
フォルダを作成できた
フォルダを作成することができました。
深い階層のフォルダを作成する
深い階層のフォルダを作成するには、階層ごとにフォルダを作成する必要があります。
フォルダがないとエラーになる
深い階層を一度に作成しようとすると、フォルダがないので、エラーになります。
Sub TEST2()
'深い階層のフォルダを作成 ⇒エラーになる
MkDir "C:\Users\User\Desktop\TEST\1\2\3"
End Sub
深い階層のフォルダを作成すると、エラーとなります。
深い階層のフォルダは作成できない
実行してみます。
深い階層のフォルダを作成するとエラー
深い階層のフォルダは、一括で作成できないので、エラーとなりました。
階層ごとにフォルダを作成する必要がある
階層ごとにフォルダを作成する必要があります。
こんな感じで、階層ごとにフォルダを作成する必要があります。
Sub TEST3()
'階層ごとにフォルダを作成する
MkDir "C:\Users\User\Desktop\TEST\1" '「1」のフォルダを作成
MkDir "C:\Users\User\Desktop\TEST\1\2" '「2」のフォルダを作成
MkDir "C:\Users\User\Desktop\TEST\1\2\3" '「3」のフォルダを作成
End Sub
階層ごとに深い階層までのフォルダを作成してみます。
深い階層までフォルダを作成してみる
実行すると、深い階層までのフォルダを作成できます。
深い階層までフォルダを作成できた
深い階層までのフォルダを作成できました。
ただ、このままでは応用がきかないので、深い階層のフォルダ作成を自動化してみます。
VBAで階層ごとにフォルダを作成
階層ごとにフォルダを作成するVBAコードです。
Sub TEST4()
Dim A
'「\」ごとに、分割する
A = Split("C:\Users\User\Desktop\TEST\1\2\3", "\")
Dim B, C
'分割したフォルダをループ
For i = 0 To UBound(A)
B = A '分割したフォルダを入力'配列の大きさを変更する
ReDim Preserve B(i)
'配列を結合してフォルダパスを作成
C = Join(B, "\")
'フォルダパスが存在しない場合
If Dir(C, vbDirectory) = "" Then
'フォルダを作成する
MkDir C
End If
Next
End Sub