VBA(マクロ)で一括フォルダ作成

スポンサーリンク

FSO(FileSystemObject)の便利な使用方法

FSOを用いたファイル、フォルダの操作は変数の扱いと合わせて使用することでより便利な操作になります。

例えば色んな名前のフォルダを手作業で100個作るのは大変ですが、Excelの表に100個のフォルダ名の一覧を作っておけば、その名前のフォルダ一気に作成したりできます。

20-001
20-002

FSO(FileSystemObject)を用いたVBAコードの紹介

デスクトップにあるaというフォルダの中にExcelの一番左の列に書かれた100個の名前のフォルダを作成するコードは以下のようになります。

Sub Excelシートの一覧表に載っている名前のフォルダをデスクトップのaフォルダの中に作成するマクロ()
 
Dim WSH As Object, FSO As Object
Dim DesktopPath As String
Dim i As Integer
Set WSH = CreateObject(“Wscript.Shell”)
Set FSO = CreateObject(“Scripting.FileSystemObject”)
DesktopPath = WSH.SpecialFolders(“Desktop”)
 
For i = 1 To 100
FSO.CreateFolder DesktopPath & “a” & Cells(i, 1).Text
Next i
Set FSO = Nothing
Set WSH = Nothing
 
End Sub

手作業でのフォルダを作る必要がなくなるのでよくフォルダを作る必要がある人は持っておくと便利だと思います。100個に限らず一覧を全て作成する場合は、以下に記すようにDo Until~Loop構文を使うとよいと思います。

Sub Excelシートの一覧表に載っている名前のフォルダをデスクトップのaフォルダの中に作成するマクロ()
 
Dim WSH As Object, FSO As Object
Dim DesktopPath As String
Dim i As Integer
Set WSH = CreateObject(“Wscript.Shell”)
Set FSO = CreateObject(“Scripting.FileSystemObject”)
DesktopPath = WSH.SpecialFolders(“Desktop”)
 
i = 1
Do Until Cells(i, 1).Text = “”
FSO.CreateFolder DesktopPath & “a” & Cells(i, 1).Text
i = i + 1
Loop
Set FSO = Nothing
Set WSH = Nothing
 
End Sub

このコードだと表がなくなるまでフォルダを作り続けるので、100個より多くても少なくても大丈夫です。

サンプルファイルも投稿します。このファイルのA列に上から詰めて作成したいフォルダの名前を記載してボタンを押すとデスクトップのaフォルダの中に表に書いた名前のフォルダが作成されます。デスクトップに「a」という名前のフォルダがなければ自動で作成します。

デスクトップのaフォルダに一覧表の名前のフォルダを作成するマクロはこちらからダウンロードできます。

コメント