OfficeType

VBA~フォルダの作成~Excel

フォルダの作成

VBAでフォルダを作成したい時はMkDirを使います。MkDir フォルダパスでフォルダが作成されます。下のコードを実行するとCドライブにサンプルというフォルダが作成されます。

Sub test1()
MkDir "C:\サンプル"
End Sub

image-01

同名のフォルダがある時にメッセージを表示する

上のコードでCドライブに同名のフォルダが存在する場合はエラーが出ます。

image-02

同名のフォルダがある時はメッセージを表示するようにするとエラーが回避できます。下のコードはIf文の条件式にDir関数を使っています。Dir関数はDir(パス,属性)で属性に確認したいファイルの属性に対応した定数を指定します。フォルダの場合はvbDirectoryを指定します。パスに確認したいフォルダのパスを指定しフォルダがあれば、フォルダ名を返し、なければ長さ0の文字列""を返します。今回の場合はフォルダがない場合にフォルダを作成するので条件式はDir(FolderPath, vbDirectory) = ""になり、これを満たした場合にフォルダが作成されます。フォルダがある場合は条件を満たさないのでElseのコードが実行されメッセージボックスに"同名フォルダがあります"と表示されます。

Sub test2()
Dim FolderPath As String
FolderPath = "C:\サンプル"
If Dir(FolderPath, vbDirectory) = "" Then
MkDir FolderPath
Else
MsgBox "同名フォルダがあります"
End If
End Sub

image-03