- ベストアンサー
Excel マクロで名前を付けて保存
Excel で NOW() 関数で表示させてあるセル(D1)があります。 このブックは、閉じる前に「名前を付けて保存」します。 そのときファイル名の後に D1 という文字を加える操作を、キー入力なしにマクロで行いたいのですが、どうしたらよいでしょうか。 教えて下さい。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> Dialogs.Show を行わず、直接保存させてしまう方法はないのでしょうか。 それなら、これでは? 今度はテストしたので大丈夫だと思います。 Sub test03() Dim x As String, fn As String, pt As String fn = ThisWorkbook.Name fn = Left(fn, Len(fn) - 4) pt = ThisWorkbook.Path x = Format(Sheets("Sheet1").Range("D1").Value, "h""時""mm""分""") ActiveWorkbook.SaveAs Filename:=pt & "\" & fn & x & ".xls" End Sub
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
#1です。 x = Sheets("Sheet1").Range("D1").Value を x = Format(Sheets("Sheet1").Range("D1").Value, "h""時""mm""分""") に変えてください。 そのままだとファイル名に使えない文字が入ってしまいます。
- merlionXX
- ベストアンサー率48% (1930/4007)
D1 という文字を加える? D1に表示された日時を加えるのでしょう? D1がSheet1のセルだとして、 直接マクロを呼び出すなら Sub TEST01() Dim x As String x = Sheets("Sheet1").Range("D1").Value Application.Dialogs(xlDialogSaveAs).Show , ARG1:=ThisWorkbook.Name & x, ARG2:=1 End Sub Closeイベントで表示させるなら Private Sub Workbook_BeforeClose(Cancel As Boolean) x = Sheets("Sheet1").Range("D1").Value Application.Dialogs(xlDialogSaveAs).Show , ARG1:=ThisWorkbook.Name & x, ARG2:=1 End Sub
お礼
merlionXXさん ありがとうございました。
補足
merlionXXさん ありがとうございます。 > ARG1:=ThisWorkbook.Name & x こうしますと、FileName.xls のあとに"x"が書き加えられ、拡張子が変わってしまいます。 それと、Dialogs.Show を行わず、直接保存させてしまう方法はないのでしょうか。
お礼
merlionXXさん 巧くいきました。 ありがとうございます。