はじめに
ひらちんです。
VBAからフォルダを操作する方法をまとめます(^o^)
フォルダの存在を確認する
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
フォルダを作成する
VBAでフォルダを作成するには、MkDirステートメントを使います。
VBAで作ったデータを保存するためのフォルダなどを作成する時に使いますね。
サンプル
Sub sample()
Dim フォルダ As String
フォルダ = "C:\sample\ひらちんの部屋"
If Dir(フォルダ, vbDirectory) = "" Then
MkDir フォルダ
End If
End Sub
サンプルでは、「Cドライブ」の「sample」フォルダに「ひらちんの部屋」フォルダがあるかないかを判定し、ない場合は、作成するという流れになっています。
フォルダがあるかないかは、Dir関数でチェックしています。
フォルダを削除する
VBAでフォルダを削除するには、RmDirステートメントを使います。
サンプル
Sub sample()
Dim フォルダ As String
フォルダ = "C:\sample\ひらちんの部屋"
If Dir(フォルダ, vbDirectory) <> "" Then
RmDir フォルダ
End If
End Sub
存在しないフォルダを削除しようとするとエラーになるので、存在チェックをしています。
先程MkDirステートメントで作成したフォルダを削除します。
フォルダの名前を変更する・移動する
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ドライブ」にある「移動後のフォルダ」に「ひらちんの部屋_移動後」と名前を変えて移動させます。
コメント