【VBA】フォルダの存在チェックと新規フォルダ作成の方法

VBA

Excel VBAを使用してファイルを保存する際、指定したフォルダが存在しない場合は新しいフォルダを作成したいことがあります。今回は、フォルダの存在を確認し、存在しない場合は自動的に新規フォルダを作成するVBAコードを紹介します。

コードの概要

以下のコードは、指定したパスにフォルダが存在するかどうかを確認し、存在しない場合は新しくフォルダを作成する手順を示しています。

Sub CreateFolderIfNotExists()
    Dim SaveFolderPath As String
    Dim FolderName As String

    ' 保存したいフォルダの一つ上の階層のフォルダパスを設定
    SaveFolderPath = "C:\Users\YourUsername\Documents" ' 例としてドキュメントフォルダのパスを使用

    ' 新規フォルダ名を設定
    FolderName = "NewFolderName" ' 作成したいフォルダ名を指定

    ' フォルダの存在を確認し、存在しない場合は作成
    If Dir(SaveFolderPath & "\" & FolderName, vbDirectory) = "" Then
        MkDir (SaveFolderPath & "\" & FolderName)
        MsgBox "フォルダ " & FolderName & " を作成しました。", vbInformation
    Else
        MsgBox "フォルダ " & FolderName & " は既に存在します。", vbExclamation
    End If
End Sub

コードの詳細解説

1. フォルダパスとフォルダ名の設定

SaveFolderPath = "C:\Users\YourUsername\Documents"
FolderName = "NewFolderName"
  • SaveFolderPath: 保存したいフォルダの1つ上の階層のパスを指定します。例えば、C:\Users\YourUsername\Documents のように設定します。
  • FolderName: 作成したいフォルダの名前を指定します。ここでは "NewFolderName" というフォルダ名を例として使用しています。

2. フォルダの存在チェック

If Dir(SaveFolderPath & "\" & FolderName, vbDirectory) = "" Then
    MkDir (SaveFolderPath & "\" & FolderName)
    MsgBox "フォルダ " & FolderName & " を作成しました。", vbInformation
Else
    MsgBox "フォルダ " & FolderName & " は既に存在します。", vbExclamation
End If
  • Dir 関数を使用して、指定されたパスにフォルダが存在するかを確認します。vbDirectory を指定することで、ディレクトリ(フォルダ)の存在を確認します。
  • フォルダが存在しない場合は MkDir 関数を使って新しいフォルダを作成します。作成後、確認のメッセージボックスを表示します。
  • 既にフォルダが存在する場合は、メッセージボックスでその旨を通知します。

実用例

例えば、月次レポートを保存するために、毎月新しいフォルダを自動的に作成したい場合、このマクロを利用することで、存在しないフォルダを自動で作成し、ファイルを整理することができます。

Sub SaveMonthlyReport()
    Dim SaveFolderPath As String
    Dim FolderName As String

    SaveFolderPath = "C:\Reports\Monthly"
    FolderName = Format(Date, "YYYY_MM") ' 例:2024_08

    If Dir(SaveFolderPath & "\" & FolderName, vbDirectory) = "" Then
        MkDir (SaveFolderPath & "\" & FolderName)
        MsgBox "フォルダ " & FolderName & " を作成しました。", vbInformation
    Else
        MsgBox "フォルダ " & FolderName & " は既に存在します。", vbExclamation
    End If

    ' ここにファイル保存の処理を追加
End Sub

まとめ

このVBAコードを使用することで、指定したフォルダが存在しない場合に自動的に新しいフォルダを作成し、必要なデータを整理することが可能です。特に、定期的に生成されるレポートやデータの保存先を管理する際に便利です。プロジェクトで活用してみてください。


フォルダの新規作成って意外と面倒くさいよねー

ではまたー

コメント

タイトルとURLをコピーしました