VBS(VBScript)では、FileSystemObject を利用してフォルダを作成できます。
フォルダを1つ作成するだけであれば簡単ですが、実際の業務では「日付を付けたフォルダを作成する」「親フォルダと複数の子フォルダをまとめて作成する」といった処理が必要になることがあります。
この記事では、VBSを使ってフォルダを作成する方法と、基本的な処理から複数フォルダを一括作成する方法を試してみました。
1.VBSでフォルダを作成する
VBSでフォルダを作成する場合は、FileSystemObject の CreateFolder メソッドを使用します。
基本的なコードは以下のとおりです。
Dim FSO
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
FSO.CreateFolder("C:\hogehoge")このVBSを実行すると、C:\ の直下に hogehoge というフォルダが作成されます。
1-1. フォルダが存在する場合
すでに同じ名前のフォルダが存在する場合、CreateFolder をそのまま実行するとエラーになります。
そのため、フォルダを作成する前に FolderExists で存在確認をしておくと安全です。
Dim FSO
Dim FolderPath
FolderPath = "C:\hogehoge"
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(FolderPath) Then
MsgBox "フォルダはすでに存在します。"
Else
FSO.CreateFolder(FolderPath)
MsgBox "フォルダを作成しました。"
End IfFolderExists でフォルダの存在を確認し、存在しない場合だけ CreateFolder を実行しています。
2.日付付きのフォルダを作成する
次に、フォルダ名に日付を付けて作成してみます。
例えば、以下のようなフォルダを作成します。
C:\hogehoge
└─ hogehoge_20260909VBSでは Year、Month、Day を利用すると、現在の日付を取得できます。
Dim FSO
Dim FolderPath
Dim FolderName
Dim DateString
DateString = Year(Date) & _
Right("0" & Month(Date), 2) & _
Right("0" & Day(Date), 2)
FolderName = "hogehoge_" & DateString
FolderPath = "C:\hogehoge\" & FolderName
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(FolderPath) Then
MsgBox FolderName & " はすでに存在します。"
Else
FSO.CreateFolder(FolderPath)
MsgBox FolderName & " を作成しました。"
End If例えば2026年9月9日に実行した場合、以下のフォルダが作成されます。
C:\hogehoge\hogehoge_20260909Right("0" & Month(Date), 2) のようにすることで、1桁の月や日を2桁にそろえています。
3.複数の子フォルダを一括で作成する
次に、親フォルダを作成したあと、その中に複数の子フォルダを作成してみます。
今回は以下のフォルダ構成を作成します。
C:\hogehoge
└─ hogehoge_20260909
├─ hogehoge1
├─ hogehoge2
├─ hogehoge3
└─ hogehoge4
使用するVBSは以下です。
Dim FSO
Dim BasePath
Dim FolderName
Dim CreatePath
Dim ChildFolderPath
Dim DateString
Dim i
'日付をYYYYMMDD形式で取得
DateString = Year(Date) & _
Right("0" & Month(Date), 2) & _
Right("0" & Day(Date), 2)
'親フォルダの名前
FolderName = "hogehoge_" & DateString
'親フォルダのパス
BasePath = "C:\hogehoge"
CreatePath = BasePath & "\" & FolderName
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
'親フォルダが存在するか確認
If FSO.FolderExists(CreatePath) Then
MsgBox FolderName & " はすでに存在します。"
Else
'親フォルダを作成
FSO.CreateFolder(CreatePath)
'子フォルダを作成
For i = 1 To 4
ChildFolderPath = CreatePath & "\hogehoge" & i
FSO.CreateFolder(ChildFolderPath)
Next
MsgBox FolderName & " を作成しました。"
End IfこのVBSを実行すると、以下のようなフォルダが作成されます。
C:\hogehoge
└─ hogehoge_20260909
├─ hogehoge1
├─ hogehoge2
├─ hogehoge3
└─ hogehoge4
For文を使用しているため、子フォルダを増やしたい場合も簡単に変更できます。
例えば、For i = 1 To 10 と変更すれば、hogehoge1~hogehoge10 まで作成できます。
4.VBSでフォルダを作成する処理のポイント
今回使用した主な処理をまとめると以下のとおりです。
| 処理 | VBS |
|---|---|
| FileSystemObjectを作成 | WScript.CreateObject("Scripting.FileSystemObject") |
| フォルダの存在確認 | FolderExists |
| フォルダを作成 | CreateFolder |
| 現在の日付を取得 | Date |
| 年を取得 | Year(Date) |
| 月を取得 | Month(Date) |
| 日を取得 | Day(Date) |
特にフォルダ作成では、CreateFolder を実行する前に FolderExists で存在確認しておくことが重要です。
5.まとめ
今回は、VBSを使ってフォルダを作成する方法を試してみました。
FileSystemObject を利用すると、VBSからフォルダの作成や存在確認ができます。
今回紹介した方法を応用すれば、
- フォルダを自動作成する
- 日付付きのフォルダを作成する
- 複数の子フォルダを一括作成する
- 定期的に決まったフォルダ構成を作成する
といった処理を自動化できます。
単純なフォルダ作成だけであればPowerShellでも簡単に実現できますが、既存のVBSやバッチファイルと組み合わせて利用したい場合には、VBSでフォルダ作成処理を実装する方法も便利です。


