マクロで日付を取得して、ファイル名に加えて保存することができます。
Sub test()
folderPath = "C:\Users\[ユーザー名]\Desktop"
saveName = "Save"
y = Year(Date)
m = Month(Date)
d = Day(Date)
FullName = saveName & "_" & y & "_" & m & d & ".xlsm"
ThisWorkbook.SaveAs (folderPath & "\" & FullName)
End Sub
名前を付けてファイルを保存する方法
名前を付けて保存する方法は2パターンあります。
①SaveAsで名前を付けて保存する
Sub test()
folderPath = "C:\Users\HTOM\Desktop"
saveName = "Save.xlsm"
ThisWorkbook.SaveAs (folderPath & "\" & saveName)
End Sub
保存先と名前を指定するには、ファイルのパス(保存先)が必要です。
フォルダまでのパスをfolderPath、変更後の名前をsaveNameにしました。
ユーザー名は人によって違うので注意してください。
実行するとデスクトップに保存されるはずです。↓
パスってどうやって調べるの?
アドレスバーをクリックしたら全選択されるので、それをfolderPathにコピペすればOKです!
実行ファイルではなく別のファイルを保存したいなら、ThisWorkbookの部分を書き換えます。
Sub test()
folderPath = "C:\Users\HTOM\Desktop"
saveName = "Save.xlsm"
Workbooks("Book1.xlsx").SaveAs (folderPath & "\" & saveName)
End Sub
Workbooks(“ファイル名”)で保存したいファイルを指定しましょう。
>>Excelマクロでセルシートファイルを指定する方法
②Closeで名前を付けて保存しながら閉じる
Sub test()
folderPath = "C:\Users\HTOM\Desktop"
saveName = "SaveClose.xlsm"
ThisWorkbook.Close savechanges:=True, Filename:=folderPath & "\" & saveName
End Sub
savechanges := Trueで変更を保存しています。
また、Filename := パスで保存先とファイル名が指定可能です。
上記コードを実行すると、デスクトップに”SaveClose.xlsm”として保存されます。
しかしCloseでは最後にカラのExcelファイルが残ってしまいます。
残るのが嫌な人はSaveAsの後でExcelを終了させましょう。
Sub test()
folderPath = "C:\Users\HTOM\Desktop"
saveName = "Save.xlsm"
ThisWorkbook.SaveAs (folderPath & "\" & saveName)
Application.Quit
End Sub
AppplicationはExcelアプリ自体を指します。Quitでアプリを終了できます。
他のファイルも一緒に閉じてしまうので注意してくださいね。
日付を取得する方法
Date:今日の日付
日付を取得するにはDateを使います。
Sub test()
MsgBox Date
End Sub
実行すると現在の日付が表示されるはずです。
Year, Month, Day
Yearで年、Monthで月、Dayで日を取得できます。
Sub test()
MsgBox Year(Date)
MsgBox Month(Date)
MsgBox Day(Date)
End Sub
Dateを()に入れましょう。
そして、取得した年月日を&で文字列として連結することができます。
Sub test()
y = Year(Date)
m = Month(Date)
d = Day(Date)
MsgBox "今日は" & y & "年" & m & "月" & d & "日です。"
End Sub
この機能を使ってファイル名に日付を加えれば完成です!!
日付を入れた名前を付けて保存する方法
日付を入れたファイル名を作成する
Sub test()
folderPath = "C:\Users\HTOM\Desktop"
saveName = "Save"
y = Year(Date)
m = Month(Date)
d = Day(Date)
FullName = saveName & "_" & y & "_" & m & d & ".xlsm"
MsgBox FullName
End Sub
saveNameの部分で拡張子を入れるとFullNameの作成で都合が悪くなります。
なので、最初は拡張子なしでファイル名を用意しましょう。
FullNameが最終的に保存したい名前です。
あとはこれをSaveAsまたはCloseに入れるだけですね!!
日付を入れたファイル名で保存する
Sub test()
folderPath = "C:\Users\HTOM\Desktop"
saveName = "Save"
y = Year(Date)
m = Month(Date)
d = Day(Date)
FullName = saveName & "_" & y & "_" & m & d & ".xlsm"
ThisWorkbook.SaveAs (folderPath & "\" & FullName)
End Sub
これで日付を入れた名前で保存することができました。
くどいですが、ユーザー名は人によって違います。
Closeを使う方法は以下の通りです。↓
Sub test()
folderPath = "C:\Users\HTOM\Desktop"
saveName = "Save"
y = Year(Date)
m = Month(Date)
d = Day(Date)
FullName = saveName & "_" & y & "_" & m & d & ".xlsm"
ThisWorkbook.Close savechanges:=True, Filename:=folderPath & "\" & FullName
End Sub
もし実行ファイルではなく、別のファイルを保存したいなら、
ThisWorkbookをWorkbooks(“ファイル名”)に変えてください。
Formatで日付のフォーマットを整える
1月1日を”0101″にすると、月日によらず文字数を統一できて見栄えが良いですよね。
Sub test()
folderPath = "C:\Users\HTOM\Desktop"
saveName = "Save"
y = Year(Date)
m = Format(Month(Date), "00")
d = Format(Day(Date), "00")
FullName = saveName & "_" & y & "_" & m & d & ".xlsm"
ThisWorkbook.SaveAs (folderPath & "\" & FullName)
End Sub
Formatの()に入れて、”00″に設定することで2桁表記にできます。
月と日は2文字で表し、それぞれ変数mとnに入れてnameの中で使いましょう。
するとファイル名は2021年1月1日なら「2021_0101」になります!!
まとめ
今回はファイル名に日付を入れて保存する方法を紹介しました。
ファイルを保存する方法や開く方法についても解説しているので、ぜひご覧ください。
コメント