• ベストアンサー

EXCELで日付を自動でファイル名にしたい

タイトル通りなのですが ファイル名を自動で日付にして保存するマクロ どうやればよいのでしょうか 私は記録したマクロを解説書を見ながら整理 するくらいのレベルです よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

マクロではなく、VBAになりますが、 例えば、2005年5月1日だったら、「20050501.xls」という、ファイル名にして保存することでよろしければ、次のようにすれば出来ます。 Sub 日付のファイル名() Dim a, b, c As String a = Application.WorksheetFunction.Text(Date, "yyyymmdd") b = "C:$" c = b & a & ".xls" ThisWorkbook.SaveAs (b) End Sub b は、実際に保存しようとする、フォルダー名を入れて下さい。 もし、2005年5月1日を「050501.xls」と、する場合は、 (Date, "yyyymmdd")を (Date, "yymmdd") とすれば、出来ます。

noname#11559
質問者

お礼

ありがとうございます "yymmdd"の部分の書式を変えると H17.5.1にもなると解りました 助かりました。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

私は、サブルーチンも置かずに、一本で書いてしまったので、本当に汚いコードで自信がないけれど、1つの例として出しておきますね。これは、できれば、Personal.xls の標準モジュールで、ツールボタン登録がよいのではないかなって思いました。 Sub SaveWithTimeStamp() Dim fName As String Dim dFilePath As String Dim myPath As String Dim ans As Integer, rtn As String dFilePath = Application.DefaultFilePath & "\" fName = Format$(Date, "yymmdd") myPath = dFilePath & fName & ".xls" If Dir(myPath) = "" Then  ActiveWorkbook.SaveAs fName  Else  ans = MsgBox(fName & " と同名のファイルがすでにあります." & Chr(13) & _  "上書きしますか?", vbYesNoCancel)  If ans = vbYes Then   Application.DisplayAlerts = False   ActiveWorkbook.SaveAs myPath   Application.DisplayAlerts = True  ElseIf ans = vbNo Then   fName = Application.InputBox("名前を変更してください." & Chr(13) _   & fName & ".xls", , fName, , , , , 2)   If rtn <> "False" Then   If InStr(fName, ".xls") = 0 Then fName = fName & ".xls"   myPath = dFilePath & fName   If Dir(myPath) = "" Then    ActiveWorkbook.SaveAs myPath    Else    MsgBox fName & "が、同じフォルダにありますので、1度フォルダを調べてください.", 64    Exit Sub   End If   Else   Exit Sub   End If   Else   Exit Sub  End If End If End Sub

noname#11559
質問者

お礼

ありがとうございます すごいですね! プリントして、よく勉強したいと思います。

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.3

マクロの記録を利用されるなら、ひとまず適当な名前で「名前を付けて保存」したコードのファイル名の部分(XYZ.xlsの部分)を以下のように置換編集してください。 "・・・\・・・\XYZ.xls", を "・・・\・・・\" & Format(Date, "yymmdd"),  にします

noname#11559
質問者

お礼

ありがとうございます

  • a987654
  • ベストアンサー率26% (112/415)
回答No.2

マクロで ActiveWorkbook.SaveAs Filename:="C:\My Documents\a.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False "C:\My Documents\a.xls”のところに所要のパスとファイル名を入れれば okです。 通常の操作で出きることであれば、マクロ記録の機能を使うと、 わざわざ解りにくい解説書を読まなくてもマクロはつくれますよ。 逆に、マクロ記録で作っておいて後で解説書を見ながら蛇足な部分を削除する。 という方法を私は実行していますが...(参考までに)

noname#11559
質問者

お礼

ありがとうございます

関連するQ&A

専門家に質問してみよう