例えば「2014-12月.xlsm」というファイルがあって、あるコードを実行すると「2015-1月.xlsm」などのように次の月のファイルを作成してくれるとします。下記はその一部ですが、もしファイル名を変えて、「削除したい2015-2月.xlsm」という名前にした時、、「削除したい2015-3月.xlsm」という名前をpathに入れるようにするにはどこを変えればできるでしょうか?
すいませんが、よろしくお願いします。
path = Format(DateAdd("m", 1, DateValue(Replace(ThisWorkbook.Name, "月.xlsm", "-1"))), "yyyy-m") & "月.xlsm"
No.2ベストアンサー
- 回答日時:
「月.xlsm」と同じく、削除したいのをただ削除するだけです。
dim myFile as string
myfile = thisworkbook.name
myfile = "削除したい" & format(dateadd("m", 1, replace(replace(myfile, "削除したい",""), "月.xlsm", "")), "yyyy-m") & "月.xlsm"
thisworkbook.saveas myfile
#pathとか変数名に使っちゃダメです。
この回答への補足
どうもありがとうございます。大変感謝です。replace(replaceに変えるのはきちんと理解がないとでてこないですね。
教えていただいたもので、思い通りになりましたが、もう1点問題がでました。年が変わったら「2015年」という名前でフォルダの作成を行いたいのですが、下記のコードでは「削除したい2015年」という名前のフォルダになってしまいます。フォルダの作成は、「削除したい」を除いたものを作成するにはどう変えればよいでしょうか?
理解がまだまだ薄いので、たびたびお手数をおかけしますがどうぞよろしくお願いいたします。
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
No.1
- 回答日時:
現在のコードで不都合なことがよくわかりません。
>もしファイル名を変えて、「削除したい2015-2月.xlsm」という名前にした時、、「削除したい2015-3月.xlsm」という名前をpathに入れるようにするにはどこを変えればできるでしょうか?
「削除したい2015-2月.xlsm」という名前にした時とはどのような操作を意味しているのでしょうか?
具体的に、このようなことをしたいが、現在のコードではこのような結果になっていまうというような(たとえは2015-1月.xlsmファイルのファイル名を2015-2月と変更したところ2015-3月のファイル名が作成できないなど)補足説明をされたほうが良いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 1つのファイルを複数のフォルダにファイル名を【明日の日付】にして、コピーしたい 5 2022/12/13 04:23
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Excel(エクセル) 1つのファイルを複数のフォルダにファイル名を【明日の日付】にして、コピーしたい 5 2022/12/13 20:11
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/10/03 09:55
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System32内のファイルを書き換...
-
google Drive 容量を減らせない...
-
CentOS7で容量がきつくなったの...
-
Cドライブにconfig msiというフ...
-
Visual C++ でクラスを削除する
-
エクセルを立ち上げるとBook2が...
-
Update失敗ファイルの削除方法は?
-
VBで作成したフォームのタイト...
-
delコマンドでデスクトップ上の...
-
退職前にパソコンをきれいにし...
-
体言止について (日本語文法)
-
ファイルの削除ができません
-
ファイルの削除履歴について
-
Apoint2Kってスパイウェアでし...
-
ExcelVBAで翌月のファイル名取得
-
エラーメッセージが文字化け
-
常に「すべての列のサイズを自...
-
条件付き書式が設定できない
-
【VBA】写真の縦横比を変えずに...
-
貼り付けとショートカットの貼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System32内のファイルを書き換...
-
エクセルを立ち上げるとBook2が...
-
Cドライブにconfig msiというフ...
-
google Drive 容量を減らせない...
-
CentOS7で容量がきつくなったの...
-
Apoint2Kってスパイウェアでし...
-
delコマンドでデスクトップ上の...
-
Googleドライブで削除できない...
-
Desktopという構成設定のアイコ...
-
Windowsコマンドでファイル削除...
-
Dosコマンドで2階層下をワイル...
-
fwriteで作成したバイナリファ...
-
体言止について (日本語文法)
-
エクセル等でハイパーリンクの...
-
Excel VBAで特定のシートの左側...
-
Update失敗ファイルの削除方法は?
-
デスクトップに同じ名前のファ...
-
アドオンの管理で削除ができない
-
Visual C++ でクラスを削除する
-
ExcelVBAで翌月のファイル名取得
おすすめ情報