Excel VBAでは、フォルダを自動で作成する処理を実装することができます。
例えば次のような場面でよく使われます。
- レポート出力用フォルダを自動作成
- 日付ごとのバックアップフォルダを作成
- 処理結果の保存先を自動生成
VBAでフォルダを作成する方法は主に 2つあります。
MkDirを使う方法(VBA標準)FileSystemObjectを使う方法(より高機能)
この記事では、それぞれの方法を 初心者でも理解できるように解説します。
目次
1. VBAでフォルダを作成する方法は2種類
| 方法 | 特徴 |
|---|---|
| MkDir | VBA標準。シンプルで軽い |
| 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の違い
| 項目 | MkDir | FileSystemObject |
|---|---|---|
| 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
を使うとよいでしょう。
コメント