プロが教えるわが家の防犯対策術!

タイトル通りなのですが
ファイル名を自動で日付にして保存するマクロ
どうやればよいのでしょうか

私は記録したマクロを解説書を見ながら整理
するくらいのレベルです

よろしくお願いします

A 回答 (4件)

マクロではなく、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") とすれば、出来ます。
    • good
    • 3
この回答へのお礼

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

お礼日時:2005/05/01 22:53

マクロで


ActiveWorkbook.SaveAs Filename:="C:\My Documents\a.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False

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

ありがとうございます

お礼日時:2005/05/01 15:15

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



"・・・\・・・\XYZ.xls", を
"・・・\・・・\" & Format(Date, "yymmdd"),  にします
    • good
    • 3
この回答へのお礼

ありがとうございます

お礼日時:2005/05/01 22:54

私は、サブルーチンも置かずに、一本で書いてしまったので、本当に汚いコードで自信がないけれど、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
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/05/01 22:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A