【EXCEL VBA】VBAでフォルダを扱う

スポンサーリンク

はじめに

ひらちんです。

VBAからフォルダを操作する方法をまとめます(^o^)

スポンサーリンク

フォルダの存在を確認する

構文

Dir(pathname, vbDirectory)

Dir関数の第2引数に”vbDirectory“を指定するとフォルダの存在確認が出来ます。

存在しない場合は「””」を返します。

サンプル

Sub sample()


    Dim 存在するフォルダ As String
    存在するフォルダ = "C:\sample\ひらちんの部屋"
    
    If Dir(存在するフォルダ, vbDirectory) <> "" Then
        Debug.Print "ファイルあります!"
    Else
        Debug.Print "ファイルありません!"
    End If
    
    
    Dim 存在しないフォルダ As String
    存在しないフォルダ = "C:\sample\ひらちんの部屋ttt"
    
    If Dir(存在しないフォルダ, vbDirectory) <> "" Then
        Debug.Print "ファイルあります!"
    Else
        Debug.Print "ファイルありません!"
    End If
    

End Sub

スポンサーリンク

フォルダを作成する

構文

MkDir path

VBAでフォルダを作成するには、MkDirステートメントを使います。

VBAで作ったデータを保存するためのフォルダなどを作成する時に使いますね。

サンプル

Sub sample()

    Dim フォルダ As String
    フォルダ = "C:\sample\ひらちんの部屋"
    
    If Dir(フォルダ, vbDirectory) = "" Then
        MkDir フォルダ
    End If

End Sub

サンプルでは、「Cドライブ」の「sample」フォルダに「ひらちんの部屋」フォルダがあるかないかを判定し、ない場合は、作成するという流れになっています。

フォルダがあるかないかは、Dir関数でチェックしています。

フォルダを削除する

構文

RmDir path

VBAでフォルダを削除するには、RmDirステートメントを使います。

サンプル

Sub sample()

    Dim フォルダ As String
    フォルダ = "C:\sample\ひらちんの部屋"
    
    If Dir(フォルダ, vbDirectory) <> "" Then
        RmDir フォルダ
    End If

End Sub

存在しないフォルダを削除しようとするとエラーになるので、存在チェックをしています。

先程MkDirステートメントで作成したフォルダを削除します。

フォルダの名前を変更する・移動する

構文

Name oldpath As newpath

VBAでフォルダを削除するには、Nameステートメントを使います。

newpathの方のpathを変更することで移動させることが出来ます。

サンプル

Sub sample()

    Dim 元のフォルダ As String
    元のフォルダ = "C:\sample\ひらちんの部屋"
    
    Dim 移動先のフォルダ As String
    移動先のフォルダ = "C:\移動後のフォルダ\ひらちんの部屋_移動後"

    If Dir(元のフォルダ, vbDirectory) <> "" Then
    
        Name 元のフォルダ As 移動先のフォルダ
        
    End If
    
End Sub

「Cドライブ」の「sample」フォルダにある「ひらちんの部屋」フォルダを、「Cドライブ」にある「移動後のフォルダ」に「ひらちんの部屋_移動後」と名前を変えて移動させます。

ファイル操作の記事はこちら

コメント

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