【Excel VBA】フォルダを作成する基本コードとやさしい解説

VBA & Excel
スポンサーリンク
スポンサーリンク

はじめに

VBAで作業をしていると、
「出力用のフォルダを自動で作りたい」
「日付ごとのフォルダを作成したい」
そんな“ちょっとした準備作業”が必要になることがあります。

そこで役立つのが MkDirFileSystemObject です。

ここでは、フォルダ作成の基本と、
実務で安心して使える書き方を解説します。

まずはコードを確認(もっともシンプル)

MkDir "C:\TestFolder"

指定したパスにフォルダが作成されます。

フォルダを作成する基本

MkDir を使う

MkDir "C:\Data\Output"

シンプルで軽い方法です。

フォルダが存在するかチェックしてから作成する

実務では 存在チェックが必須 です。

Dim path As String
path = "C:\Data\Output"

If Dir(path, vbDirectory) = "" Then
MkDir path
End If

存在しないときだけ作成するため、エラーを防げます。

日付フォルダを作成する

Dim path As String
path = "C:\Data\" & Format(Date, "yyyy-mm-dd")

If Dir(path, vbDirectory) = "" Then
MkDir path
End If

日次処理やログ保存でよく使うパターンです。

複数階層のフォルダを作成する(MkDir だけでは不可)

MkDir は 1階層ずつ しか作れません。

例:
C:\Data\2026\03\31 を一気に作る → MkDir ではエラー

そこで FileSystemObject を使います。

FileSystemObject を使って複数階層を作成する

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

fso.CreateFolder "C:\Data\2026\03\31"

存在しない階層もまとめて作成できます。

具体的な例で理解する

年月フォルダを自動作成する

Dim fso As Object
Dim path As String

path = "C:\Data\" & Format(Date, "yyyy-mm")

Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FolderExists(path) Then
fso.CreateFolder path
End If

月次処理でよく使うパターンです。

出力先フォルダを作成してからファイル保存する

Dim fso As Object
Dim path As String

path = "C:\Export"

Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FolderExists(path) Then
fso.CreateFolder path
End If

ActiveWorkbook.SaveAs path & "\result.xlsx"

フォルダ作成と保存をセットで行う実務向けの書き方です。

注意点(実務で気をつけたいこと)

  • MkDir は1階層ずつしか作れない
    → 複数階層は FileSystemObject を使う。
  • すでに存在するフォルダに MkDir を使うとエラー
    → Dir で存在チェックすると安心。
  • ネットワークフォルダは遅いことがある
    → エラー処理を入れておくと安全。
  • パスの末尾に「\」を重ねない
    → “C:\Data\” のようなパスは避ける。

応用:安全にフォルダを作成する関数

Function CreateSafeFolder(path As String) As Boolean
On Error GoTo ErrHandler

If Dir(path, vbDirectory) = "" Then
MkDir path
End If

CreateSafeFolder = True
Exit Function

ErrHandler:
CreateSafeFolder = False
End Function

実務でよく使う“安全なフォルダ作成”の関数です。

まとめ

  • フォルダ作成は MkDir が基本
  • 存在チェックをしてから作成すると安全
  • 複数階層は FileSystemObject が便利
  • 日付フォルダ・月次フォルダの作成は実務でよく使う
  • フォルダ作成は“準備作業”を自動化する大切な一歩

フォルダを作ることは、
処理の“土台”をそっと整えるような作業です。


decopon
decopon

フォルダを自動で作れるようになると、
毎日の作業がすっと軽くなります。
VBAは、そんな準備のひと手間を静かに支えてくれます。

moco
moco

新しいフォルダって、ちいさな箱みたいでかわいいよね。
VBAなら、その箱をぽんっと作ってくれるよ。

コメント

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