マクロファイルが保管されているフォルダに新規フォルダを作成
タイトルのマクロは、以下です。
'****************************************************************
'* マクロファイルが保管されているフォルダに新規フォルダを作成
'* folderName:フォルダ名
Sub CreateFolderInMacroDirectory(ByVal folderName As String)
' クラス FileObj のインスタンス化。
Dim F As FileObj: Set F = New FileObj
Dim fullFolderName As String
' マクロと同じフォルダにフォルダを作成
fullFolderName = ThisWorkbook.Path & "\" & folderName
'FileObjクラスのCreateFolder()メソッドを実行し、フォルダを作成します。
Dim blnCrtD As Boolean
blnCrtD = F.CreateFolder(fullFolderName)
'戻り値がfalseの場合
If (blnCrtD = False) Then
'エラーの詳細を表示して処理を抜けます。
Call MsgBox(F.Message, vbOKOnly + vbCritical, "フォルダ作成エラー")
Exit Sub
End If
End Sub
各部分の説明
サブルーチンの宣言
Sub CreateFolderInMacroDirectory(ByVal folderName As String)
folderName
というパラメータを受け取り、この名前のフォルダを作成します。
FileObj クラスのインスタンス化
Dim F As FileObj: Set F = New FileObj
FileObj
クラスの新しいインスタンスを作成します。このクラスにはフォルダ作成やエラーメッセージ処理の機能が含まれています。
新しいフォルダのフルパスを設定
Dim fullFolderName As String
' マクロと同じフォルダにフォルダを作成
fullFolderName = ThisWorkbook.Path & "\" & folderName
ThisWorkbook.Path
はマクロファイルが保存されているフォルダのパスを取得します。これにfolderName
を追加して新しいフォルダのフルパスを作成します。
フォルダの作成
Dim blnCrtD As Boolean
blnCrtD = F.CreateFolder(fullFolderName)
FileObj
クラスのCreateFolder
メソッドを呼び出して、新しいフォルダを作成します。CreateFolder
メソッドはフォルダの作成に成功したかどうかを示すブール値を返します。
エラーハンドリング
'戻り値がfalseの場合
If (blnCrtD = False) Then
'エラーの詳細を表示して処理を抜けます。
Call MsgBox(F.Message, vbOKOnly + vbCritical, "フォルダ作成エラー")
Exit Sub
End If
CreateFolder
メソッドがFalse
を返した場合(つまり、フォルダの作成に失敗した場合)、エラーメッセージを表示してサブルーチンを終了します。エラーメッセージはFileObj
クラスのMessage
プロパティから取得されます。
使用例
以下の使用例では、「新規フォルダ」という名前のフォルダをマクロファイルが保存されているフォルダ内に作成します。
Sub 使用例()
Call CreateFolderInMacroDirectory("新規フォルダ")
End Sub