【VBA】フォルダを作成する方法|MkDirとFileSystemObjectの違い・存在確認まで解説

Excel VBAでは、フォルダを自動で作成する処理を実装することができます。

例えば次のような場面でよく使われます。

  • レポート出力用フォルダを自動作成
  • 日付ごとのバックアップフォルダを作成
  • 処理結果の保存先を自動生成

VBAでフォルダを作成する方法は主に 2つあります。

  1. MkDir を使う方法(VBA標準)
  2. FileSystemObject を使う方法(より高機能)

この記事では、それぞれの方法を 初心者でも理解できるように解説します。


スポンサーリンク

1. VBAでフォルダを作成する方法は2種類

方法特徴
MkDirVBA標準。シンプルで軽い
FileSystemObject (FSO)機能が豊富。実務でよく使う

基本的には

  • 簡単な処理 → MkDir
  • ファイル管理をまとめて行う → FSO

という使い分けになります。


スポンサーリンク

2. MkDirでフォルダを作成する

最もシンプルな方法が MkDirステートメントです。

基本構文

MkDir フォルダパス

使用例

Sub CreateFolder()
    MkDir "C:\SampleFolder"
End Sub

実行すると

C:\SampleFolder

というフォルダが作成されます。


変数を使う例(実務でよく使う)

Sub CreateFolder()
    Dim folderPath As String
    
    folderPath = "C:\SampleFolder"
    
    MkDir folderPath
End Sub

フォルダパスを変数にしておくと、
処理の変更や再利用がしやすくなります。


スポンサーリンク

3. MkDir使用時の注意点

① 既にフォルダが存在するとエラーになる

MkDir "C:\SampleFolder"

既にフォルダが存在すると

実行時エラー '75'
パス名が無効です

が発生します。

そのため実務では 存在確認をしてから作成するのが一般的です。

'存在の確認
If Dir(folderPath, vbDirectory) = "" Then
    MkDir folderPath
End If

② 親フォルダが存在しないと作成できない

例えば

MkDir "C:\Test\Result"

この場合

C:\Test

が存在しないとエラーになります。

つまり MkDir は

親フォルダ → 事前に存在している必要あり

という特徴があります。


スポンサーリンク

4. FileSystemObjectでフォルダを作成する

もう一つの方法が FileSystemObject(FSO) です。

これはファイル・フォルダ操作をまとめて扱えるオブジェクトです。

実務ではこちらを使うことも多いです。


基本構文

CreateFolder フォルダパス

使用例

Sub CreateFolder()    Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

fso.CreateFolder "C:\SampleFolder"
End Sub

これでフォルダが作成されます。


変数を使う例

Sub CreateFolder()
Dim fso As Object
Dim folderPath As String

folderPath = "C:\SampleFolder"

Set fso = CreateObject("Scripting.FileSystemObject")

fso.CreateFolder folderPath
End Sub

FSOでの存在確認

If Not fso.FolderExists(folderPath) Then
    fso.CreateFolder folderPath
End If
スポンサーリンク

5. FileSystemObjectのメリット

FileSystemObjectは次のような処理もできます。

  • フォルダ作成
  • ファイル作成
  • ファイルコピー
  • フォルダ削除
  • ファイル一覧取得

つまり

ファイル管理をまとめて処理できる

のが大きな特徴です。


スポンサーリンク

6. MkDirとFileSystemObjectの違い

項目MkDirFileSystemObject
VBA標準
記述量少ないやや多い
機能フォルダ作成のみファイル管理全般
実務での利用簡単な処理本格的な処理

スポンサーリンク

7. 実務でよくあるフォルダ作成例

例えば

C:\Report\2026-01-01

のような 日付フォルダを作るケースです。

Sub CreateDateFolder()
    Dim folderPath As String
    
    folderPath = "C:\Report\" & Format(Date, "yyyy-mm-dd")
    
    MkDir folderPath
End Sub

実行すると

C:\Report\2026-03-17

のようなフォルダが作成されます。


スポンサーリンク

8. まとめ

VBAでフォルダを作成する方法は次の2つです。

方法用途
MkDirシンプルなフォルダ作成
FileSystemObjectファイル管理を含む処理

初心者のうちはまず

MkDir

を覚えておけば問題ありません。

その後、ファイル操作が増えてきたら

FileSystemObject

を使うとよいでしょう。

コメント

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