【ExcelVBA】フォルダを作成する方法 MkDir & FileSystemObject

こんなあなたにおすすめ

・Excel VBAでフォルダを作成したい MkDir関数

・Excel VBAでフォルダを作成したい FileSystemObject

Excel VBAでフォルダを作成したいということが多いと思います。
フォルダを作れるようになるとファイルの管理がしやすくなります。

今回は、Excel VBAでフォルダを作成する方法について解説します。

Excel VBAでフォルダを作成したい MkDir関数

MkDir関数を使うことで、指定したパスのところに簡単にフォルダを作成することができます。

MkDir "フォルダを作成したいパス\作成したいフォルダ名"

新規フォルダを作成

C:\Excel VBA\にSample Folderを作ってみましょう。

Sub test1()

    MkDir "C:\Excel VBA\Sample Folder"    'フォルダを作成する

End Sub

【実行前】

【実行後】

フォルダが重複した場合は、フォルダを作成しないようにする

新規に作成しようとしたフォルダが既に存在しているとエラーが発生します。
エラーが発生しないように、指定したフォルダの存在を確認してからフォルダを作成するようにしてみましょう。

Sub test2()

    Dim FolderName As String    '作成したいフォルダパスを格納する
    FolderName = "C:\Excel VBA\Sample Folder"
    
    '指定したフォルダが存在しない場合にフォルダを作成する
    If Dir(FolderName, vbDirectory) = "" Then
        MkDir FolderName
    Else
        MsgBox "指定したフォルダは既に存在します。"    'メッセージボックスを表示する
    End If

End Sub

【既にフォルダが存在する場合の実行結果】

Dir関数については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】ファイルとフォルダの存在を確認する方法 Dir関数

MsgBox関数については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】メッセージボックスの使い方 MsgBox

Excel VBAでフォルダを作成したい FileSystemObject

新規フォルダを作成

C:\Excel VBA\にSample Folderを作ってみましょう。

Sub test3()

    Dim FolderObject As Object    'オブジェクト型の変数を定義する
    Dim FolderName As String    '作成したいフォルダパスを格納する
    Set FolderObject = CreateObject("Scripting.FileSystemObject")    'オブジェクト型の変数にFileSystemObjectを設定する
    FolderName = "C:\Excel VBA\Sample Folder"    'フォルダ名を指定する
    FolderObject.CreateFolder FolderName    フォルダを作成する
    Set FolderObject = Nothing    オブジェクトを解放する

End Sub

【実行前】

【実行後】

フォルダが重複した場合は、フォルダを作成しないようにする

新規に作成しようとしたフォルダが既に存在しているとエラーが発生します。
エラーが発生しないように、指定したフォルダの存在を確認してからフォルダを作成するようにしてみましょう。

Sub test4()

    Dim FolderObject As Object    'オブジェクト型の変数を定義する
    Dim FolderName As String    '作成したいフォルダパスを格納する
    Set FolderObject = CreateObject("Scripting.FileSystemObject")    'オブジェクト型の変数にFileSystemObjectを設定する
    FolderName = "C:\Excel VBA\Sample Folder"    'フォルダ名を指定する

    If FolderObject.FolderExists(FolderName) Then    'フォルダの存在を確認する
        MsgBox "指定したフォルダは既に存在します。"
    Else
        FolderObject.CreateFolder FolderName    'フォルダを作成する
    End If

    Set FolderObject = Nothing    'オブジェクトを解放する

End Sub

【既にフォルダが存在する場合の実行結果】

まとめ

ここまでフォルダの作成方法について解説しました。

Excel VBAには、2通りのフォルダ作成方法があります。
先にも解説した通り、いずれの方法もフォルダの存在確認は必要です。

忘れないように注意しましょう。

Dir関数については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】ファイルとフォルダの存在を確認する方法 Dir関数

MsgBox関数については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】メッセージボックスの使い方 MsgBox

Excelで作業効率をアップしたい方は、下記の記事もご参照ください。
>>Excelのショートカット一覧 覚えて作業効率アップ!!
>>Excelで覚えておくべき関数 作業効率アップ間違いなし

【Excelについて学びたい方】
Excel 最強の教科書[完全版]
【Excel VBAについて学びたい方】
Excel VBA 脱初心者のための集中講座
エンジニアを目指すなら、TechAcademy!
オンラインスクール受講者数No.1!

・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!

・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!

・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!

・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!

無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です