概要

MkDir関数は、Excel VBAで新しいフォルダを作成するための関数です。この関数を使うことで、指定されたパスにフォルダを簡単に作成することができます。フォルダの自動生成を行いたいときや、バックアップ用のディレクトリをプログラム内で作成する際に非常に便利です。

構文

MkDir パス

パラメータ

  • パス

    作成するフォルダのパスを指定します。フルパスを指定することで、任意の場所にフォルダを作成できます。

戻り値

この関数には戻り値はありません。指定されたフォルダを作成するだけです。

説明

MkDir関数は、プログラム内で簡単に新しいフォルダを作成するために使用されます。この関数は、指定されたパスに新しいフォルダを作成し、エラーが発生しない限りそのまま実行されます。ただし、既に同じ名前のフォルダが存在する場合や、アクセス権が不足している場合にはエラーが発生します。

  • フォルダの作成

    必要なフォルダを動的に作成することで、プロジェクトの整理やデータ管理を自動化できます。

  • 注意点

    MkDirは一度に一つのフォルダしか作成できません。複数階層のフォルダを一度に作成する場合は、階層ごとにフォルダの存在確認と作成処理を行う必要があります。

使用例

基本的なフォルダの作成

Sub CreateFolder()
    Dim folderPath As String
    folderPath = "C:\Users\Username\Documents\NewFolder"

    ' フォルダを作成
    MkDir folderPath
    MsgBox "フォルダが作成されました。"
End Sub

フォルダが存在するか確認してから作成する

Sub CreateFolderIfNotExists()
    Dim folderPath As String
    folderPath = "C:\Users\Username\Documents\NewFolder"

    ' フォルダが存在しない場合のみ作成
    If Dir(folderPath, vbDirectory) = "" Then
        MkDir folderPath
        MsgBox "フォルダが作成されました。"
    Else
        MsgBox "フォルダは既に存在しています。"
    End If
End Sub

複数階層のフォルダを作成する

Sub CreateNestedFolders()
    Dim rootFolder As String
    rootFolder = "C:\Users\Username\Documents\Parent\Child\Grandchild"

    ' 親フォルダが存在しない場合に備えて、逐次作成
    If Dir("C:\Users\Username\Documents\Parent", vbDirectory) = "" Then MkDir "C:\Users\Username\Documents\Parent"
    If Dir("C:\Users\Username\Documents\Parent\Child", vbDirectory) = "" Then MkDir "C:\Users\Username\Documents\Parent\Child"
    If Dir(rootFolder, vbDirectory) = "" Then MkDir rootFolder

    MsgBox "複数階層のフォルダが作成されました。"
End Sub

エラーハンドリングを追加して安全にフォルダを作成する

Sub CreateFolderWithErrorHandling()
    Dim folderPath As String
    folderPath = "C:\Users\Username\Documents\NewFolder"

    On Error GoTo ErrorHandler
    MkDir folderPath
    MsgBox "フォルダが作成されました。"
    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました: " & Err.Description
End Sub

備考

  • エラー処理

    MkDir関数を使用する際、指定したフォルダが既に存在している場合や、作成先のパスが不正である場合、アクセス権が不足している場合にはエラーが発生します。エラーハンドリングを適切に実装することで、エラー発生時の対応がスムーズに行えます。

  • 複数階層のフォルダ作成

    MkDir関数では一度に複数階層のフォルダを作成することはできません。複数階層が必要な場合、各階層のフォルダの存在確認と作成を順に行う必要があります。FileSystemObjectを利用すれば、一度に複数階層を作成することも可能です。

  • アクセス権限の確認

    フォルダの作成には適切なアクセス権限が必要です。特に、システムフォルダや共有フォルダに作成する場合、権限の確認が重要です。

MkDir関数は、VBAでのフォルダ操作を簡単にし、必要なフォルダを動的に作成できるため、プロジェクトの自動化やデータの整理に非常に役立ちます。