- ベストアンサー
エクセルマクロでファイルを保存して閉じるときにファイル名に変数を付加して保存したいです。
エクセルマクロでファイルを保存して閉じるときにファイル名に変数を付加して保存したいです。 具体的にはファイルが閉じられるときに固定した名称の後ろに日付などを入れた形で保存したいと考えています。 どのように書けばよいのかわからなくて困っています。 教えてください。 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
yurarin99 さんのスキルにもよろうかと存じます。 1)先ず、お望みの名前でブックを保存するという動作を、普通に[新しいマクロの記録] を採ってみてください。 ここで、ファイル名にスラッシュ「/」を使うことはできませんので、「(09/11/13)」というような形式で日付文字列を付加することはできませんね。スラッシュを省くかアンダーバーやピリオドなどのお好みの文字に換えて保存なさってください。 2)次に、上記で保存したマクロのコードの中で「(09_11_13)」の部分を (" & Replace(Date, "/", "") & ") や (" & Format(Date, "yy_mm_dd") & ") などに書き換えてマクロを実行するとお望みのことが達成されます。 3)自ブックでの操作でしたら、「Workbook_BeforeClose」イベントなどに記載しておけば、終了時に、自動的に保存できます。しかし、保存済みブックに逐一マクロが付随しますので、他のブックにマクロを記載しておいて、保存するブックをアクティブにしたタイミングで「ActiveWorkbook」を保存するのが好ましいかとも存じます。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
ファイルー名前をつけて保存の操作をマクロの記録をとる。 とりあえず名前は固定の名前で操作。 そのコードの中で、今言った固定の名前のあとに、スペース+&+スペース+(文字列で日付)+".xls" という風に文字列連結すれば良い。そのあと「.xls」など拡張子を連結。(2007では別) 日付を文字列にするのは、A1に日付があるとして、 Sub test04() s = Format(Range("A1"), "geemmdd") MsgBox s s = Format(Range("A1"), "gee.mm.dd") MsgBox s s = Format(Date, "geemmdd") MsgBox s End Sub をテストしてみて察してください。 上記の"geemmdd"の部分は色々な表現が在る。定桁にするためmm,ddなどとm,dを重ねるほうがよかろう。 日付を入れたセルが変わるとかだと少し難しくなる。 オペ日を入れるならDate関数を上記Range("A1")の代わりにする。
お礼
丁寧な回答ありがとうございました。 試してみます。
- okormazd
- ベストアンサー率50% (1224/2412)
変数を付加するという意味がよくわからないが、日付を付加するというなら、下記。 ファイル名は今日なら、"cccc091113.xls" のようになる。 hizuke=Mid(Date, 3, 2) & Mid(Date, 6, 2) & Right(Date, 2) ActiveWorkbook.SaveAs Filename:="D:\aaa\bbb\cccc" & hizuke & ".xls"
お礼
シンプルでわかりやすい回答ありがとうございました。
お礼
当方、初心者なので大変勉強になりました。ありがとうございました。