Excel/VBA

TOP

フォルダを一括で作成する方法

フォルダを一括で作成する方法

サンプルコード

指定した月の全ての日付に対応するフォルダを作成します


Sub フォルダ一括作成()

    Dim GetDate As Date, StartDate As Date, LastDate As Date
    Dim i As Long
    Dim SaveFolder As String
    
    '記入されている日付を取得
    GetDate = Range("A1").Value
    
    '保存するフォルダを指定
    SaveFolder = "C:\Users\○○\Desktop\フォルダ一括テスト"
    
    '月初めの日付を指定
    StartDate = DateSerial(Year(GetDate), Month(GetDate), 1)
    
    '月末の日付を取得(次の月の初日の前日を求めています)
    LastDate = DateSerial(Year(GetDate), Month(GetDate) + 1, 0)
    
    '最初の日付から最後の日付まで繰り返し処理を行う
    For i = Day(StartDate) To Day(LastDate)
        'MkDirでフォルダを作成
        MkDir SaveFolder & "\" & Format(DateSerial(Year(GetDate), Month(GetDate), i), "yyyy年mm月dd日")
    Next i
    
    MsgBox "フォルダ作成完了"
    
End Sub
        

実行結果

月の全ての日付に対応するフォルダの作成が完了しました。

実行結果を表した画像です

既にフォルダが存在しているかを確認する方法

フォルダが存在しているか確認するにはDir関数を使います。
Dir(フォルダパス, vbDirectory)とし、結果が空白の場合はフォルダは存在していないことになります。 下記のサンプルコードをご参考ください。


Sub フォルダ存在確認()
    
    If Dir("C:\Users\○○\Desktop\SAMPLE", vbDirectory) = "" Then
        MsgBox "フォルダは存在していません"
    Else
        MsgBox "フォルダは存在しています"
    End If
    
End Sub
        

フォルダを作成するプログラムを組む際は、フォルダの存在確認も同時に行うとより安全に動作することができます。