vbaで新規フォルダ作成時の名前の指定
「あいいうえお」フォルダの中に年が変わったら「2015年」という名前でフォルダの作成を行いたいのですが、下記のコードでは「あいうえお2015年」という名前のフォルダを作成してしまいます。フォルダの作成で、「あいうえお」を除いたものを作成するにはどう変えればよいでしょうか?
(12月のファイルで実行した時に例えば「2015年」フォルダを作成して、その中に「あいうえお2015-1月.xlsm]ファイルを作成します。同じ年なら「あいうえお11月.xlsm]などファイルのみを作成します。)
お手数をおかけしますがどうぞよろしくお願いいたします。
Sub ブックコピー自動翌月分作成()
Dim i As Integer
Dim wb As Workbook
Dim myDir_path As String, myNew_path As String
'フォルダパスとファイルパスを作成
myDir_path = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\") - 1)
myNew_path = "あいうえお" & Format(DateAdd("m", 1, Replace(Replace(ThisWorkbook.Name, "あいうえお", ""), "月.xlsm", "")), "yyyy-m") & "月.xlsm"
myDir_path = Left(myDir_path, InStrRev(myDir_path, "\")) & Left(myNew_path, 9) & "年\"
'フォルダの有無を確認、なければ作成
With CreateObject("Scripting.FileSystemObject")
If Not .FolderExists(myDir_path) Then
MkDir myDir_path
'MsgBox myDir_path & "を作成しました"
'MsgBox Left(myDir_path, InStrRev(myDir_path, "\")) & "に" & vbNewLine &
MsgBox Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\") - 12) & "に" & vbNewLine & _
Left(myNew_path, 9) & "年" & "フォルダを新たに作成しました"
End If
End With
'ファイルの有無を確認、なければ保存,あれば処理中止
If Dir(myDir_path & myNew_path) = "" Then
ThisWorkbook.SaveCopyAs myDir_path & myNew_path
MsgBox myNew_path & "のファイルを新たに作成しました"
Else
MsgBox "翌月分のファイルはすでに存在するので処理を中止します", vbOKOnly, "処理中止"
Exit Sub
End If
'新規作成したブックを開く,既に開いていれば処理中止
For Each wb In Workbooks
If wb.Name = myNew_path Then
MsgBox myNew_path & "は既に開いているので処理を中止します", vbOKOnly, "処理中止"
Exit Sub
End If
Next
Workbooks.Open myDir_path & myNew_path
Workbooks(myNew_path).Activate
End Sub
お礼
できました! ありがとうございます。