Excel VBA FileSystemObjectでフォルダを作成

ファイル/フォルダ操作

今回は「FileSystemObject」オブジェクトを使用して新しいフォルダを作成する方法をご説明します。

「FileSystemObject」オブジェクトとは、ドライブ、フォルダ、ファイルを操作する事ができるオブジェクトです。

「FileSystemObject」オブジェクトの使い方も併せてご説明します。

他のファイル/フォルダの操作は次の記事をご覧ください。

1.FileSystemObjectの使い方

FileSystemObject」オブジェクトは、ドライブ、フォルダ、ファイルなどを操作する事ができるオブジェクトです。

FileSystemObjectを使用するには「CreateObject」メソッドを使用して次のように記載します。

Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
FileSystemObjectのメソッド一覧
メソッド操作内容
BuildPathパスの末尾に、指定したフォルダ名を追加したパスを返します
CopyFileファイルをコピーします
CopyFolderフォルダをコピーします
CreateFolder新しいフォルダを作成します
CreateTextFile新しいテキストファイルを作成します
DeleteFileファイルを削除します
DeleteFolderフォルダを削除します
DriveExistsドライブが存在するかどうか調べます
FileExistsファイルが存在するかどうか調べます
FolderExistsフォルダが存在するかどうか調べます
GetAbsolutePathName省略したパスから完全なパス名を返します
GetBaseName拡張子を除いたファイルのベース名を返します
GetDrive指定したDriveオブジェクトを返します
GetDriveName指定したドライブの名前を返します
GetExtensionNameファイルの拡張子を返します
GetFile指定したFileオブジェクトを返します
GetFileName指定したファイルの名前を返します
GetFolder指定したFolderオブジェクトを返します
GetParentFolderName指定したフォルダの親フォルダを返します
GetSpecialFolderシステムが使用する特別なフォルダのパスを返します
GetTempName一時的なファイル名を生成します
MoveFileファイルを移動します
MoveFolderフォルダを移動します
OpenTextFile指定したTextStreamオブジェクトを返します

2.フォルダの作成

書式は「FileSystemObject.CreateFolder(foldername)」と書きます。

foldername

作成するフォルダパスを指定します。

foldernameは省略する事ができません。

指定したフォルダパスが存在しない場合や、フォルダパスに使用できない文字列を使った場合は、エラーが発生します。

3.エラーを回避する

指定したフォルダパスが存在しない場合や、フォルダパスに使用できない文字列を使った場合は、エラーが発生します。

フォルダの存在を確認するだけでは、使用できない文字列を使用された場合のエラーは回避できません。

ですので、エラーが発生した際に「On Error GoTo」でエラー発生時に、スキップしてエラーを回避します。

4.サンプルコード

Sub Sample1()

Dim FSO         As Object
Dim myFolder    As String

    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    
    myFolder = "C:\Sample" '新規作成するフォルダパス
    
    'エラーを回避する
    On Error GoTo ErrLabel
    
    FSO.CreateFolder (myFolder)
    
    Set FSO = Nothing
    
    Exit Sub

ErrLabel:

    MsgBox Err.Description
    
End Sub

既に存在するフォルダを作成した場合は、次のようなメッセージが表示されます。

また、使用できない文字列を使った場合は次のようなメッセージが表示されます。

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