• ベストアンサー

エクセルマクロでファイルを保存して閉じるときにファイル名に変数を付加して保存したいです。

エクセルマクロでファイルを保存して閉じるときにファイル名に変数を付加して保存したいです。 具体的にはファイルが閉じられるときに固定した名称の後ろに日付などを入れた形で保存したいと考えています。 どのように書けばよいのかわからなくて困っています。 教えてください。 宜しくお願いいたします。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

 yurarin99 さんのスキルにもよろうかと存じます。 1)先ず、お望みの名前でブックを保存するという動作を、普通に[新しいマクロの記録] を採ってみてください。  ここで、ファイル名にスラッシュ「/」を使うことはできませんので、「(09/11/13)」というような形式で日付文字列を付加することはできませんね。スラッシュを省くかアンダーバーやピリオドなどのお好みの文字に換えて保存なさってください。 2)次に、上記で保存したマクロのコードの中で「(09_11_13)」の部分を (" & Replace(Date, "/", "") & ") や (" & Format(Date, "yy_mm_dd") & ") などに書き換えてマクロを実行するとお望みのことが達成されます。 3)自ブックでの操作でしたら、「Workbook_BeforeClose」イベントなどに記載しておけば、終了時に、自動的に保存できます。しかし、保存済みブックに逐一マクロが付随しますので、他のブックにマクロを記載しておいて、保存するブックをアクティブにしたタイミングで「ActiveWorkbook」を保存するのが好ましいかとも存じます。

yurarin99
質問者

お礼

当方、初心者なので大変勉強になりました。ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

ファイルー名前をつけて保存の操作をマクロの記録をとる。 とりあえず名前は固定の名前で操作。 そのコードの中で、今言った固定の名前のあとに、スペース+&+スペース+(文字列で日付)+".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")の代わりにする。

yurarin99
質問者

お礼

丁寧な回答ありがとうございました。 試してみます。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

変数を付加するという意味がよくわからないが、日付を付加するというなら、下記。 ファイル名は今日なら、"cccc091113.xls" のようになる。 hizuke=Mid(Date, 3, 2) & Mid(Date, 6, 2) & Right(Date, 2) ActiveWorkbook.SaveAs Filename:="D:\aaa\bbb\cccc" & hizuke & ".xls"

yurarin99
質問者

お礼

シンプルでわかりやすい回答ありがとうございました。

関連するQ&A

  • Excel ファイル操作マクロ

    Excel で、[ファイル][名前を付けて保存]をマクロで行うようにしました。 新しいファイル名にはマクロで日付記号を付加してあります。 このあと、すぐにもとのファイルを開き、新しくできたファイルを閉じる操作を、マクロで行いたいのですが、どうしたらよいでしょうか。 あるいは、別名コピーという方法はあるのでしょうか。 教えて下さい。よろしくお願いします。

  • エクセルのマクロで外部ファイルを開く

    セルに入力した内容をファイルネームとして外部ファイルを開きたいのですが どうすればいいのかわかりません。 具体的には 1.外部ファイルはFDで供給されます。 2.FDに入れられるファイル名は毎日かわります。 3.ファイル名は固定された名称+日付のフォーマットです。(例:file0802) 4.やろうとしているのはA1に\"file\"、B1にtoday関数で日付を入力して   A1+B1をファイル名としマクロよりそのファイル名でFDのファイルを  開きたい。 5.開いたファイルの一部をコピーしてHDD上にあるエクセルのファイルに  ペースト、このファイルにマクロを組み込みたいのです。 help等をいろいろ見たのですがこの内容に関するものが見つけられません。 もしかしたら出来ないのでしょうか? よろしくお願いします。

  • エクセルマクロでファイルを開いて保存したいです。

    エクセルマクロでファイルを開いて保存したいです。 エクセルファイルでファイル名「編集」という物を開きます。 このSheet1には中央にコマンドボタンが作成して有ります。 このボタンをクリックして以下の作業をマクロで行いたいです。 1.エクセル標準の「ファイルを開く」のメッセージボックスが開く 2.ここは使用者が作業をしてもらう   マイドキュメントだったり、マイネットワークだったり、   (ファイルの種類はCSVにする)   処理をしたいCSVファイルを探してもらい選択後、開くをクリック   例えば20100922.CSVを選択し開くをクリック 3.クリックと同時にそのファイルが展開されて、「編集」のエクセルファイルの   Sheetにシート名「集計」が作成されそのシートにCSVファイルの全内容がセルA1から貼り付く。   さらに登録してあるマクロモジュールで編集処理がされ   マクロを引き継がず、シート「集計」だけを   ファイル名は固定でそのファイル名の後ろに作成日(システム日付)を入れて   参照したCSVファイルの保管場所に保存する。   ファイル名例:売上20100923.xls(売上は固定) 4.エクセル「編集」のファイルからシート「集計」を削除する。 5.メッセージBOXで「編集終了」と表示 次回エクセルファイル「編集」を開くと、コマンドボタンだけである。 また作成された「売上20100923」はマクロがないから開くときに マクロのメッセージは出ない。というようにしたいです。 NO.2のファイルを選択する作業は作業者にしてもらいますが シート1のコマンドボタン1回を押すだけでNO.1~NO.5まで完結させたいです。  NO.3のマクロ処理はマクロの記録でモジュールができています。 このマクロの作成方法と、そのマクロが出来たら その文のどこに作成済みの処理文を入れればいいのかわかりません。 よろしくお願いします。 ここでつまづいています。この後この選択したファイルの全内容が シートの集計に展開されません。 Private Sub CommandButton1_Click() Call 集計 End Sub Sub 集計() FullPath = Application.GetOpenFilename("CSV,*.CSV") If FullPath <> "False" Then Sheets("Sheet1").Select Sheets.Add ActiveSheet.Name = "集計" With ActiveSheet.QueryTables.Add(Connection:="CSV;" & FullPath, Destination:=Range("A1"))   マクロの記録で作成したマクロ   シート"集計"をマクロを引きつかずファイル名売上&システム日付で保存   シート"集計"を削除する

  • エクセルで<名前をつけて保存>するマクロに、保存時マクロを含めて保存させることは可能ですか

    エクセル、マクロとも初心者です。 (VBAはわかりません) エクセルのテンプレートファイルを開いて、必要箇所だけ入力すると、その日の日付をファイル名として、<名前を付けて保存する>ようなマクロを作りました。 このままだと、マクロも一緒に保存されてしまいますよね。 マクロを含まずに、<名前を付けて保存>させるマクロって可能ですか? できるとしたら、どうやればいいでしょうか。

  • エクセルマクロで任意のファイル名をつけて保存したい

     エクセルVBAについての質問です。  エクセルのマクロで、Aというファイルを開いて、そのうち必要なワークシートだけを抽出し、新しいブックに移動し、その新しいブックを新しいブックのsheet1のセルC2の文字列をファイル名として保存するようなマクロをくみたいと思っています。  ファイルを開いて必要なワークシートだけを抽出し、新しいブックに移動するところまではできましたが、新しいブックのセルC2の文字列をファイル名として保存することができません。FNを変数として宣言して、C2の文字列を代入し、FNをファイル名として保存しようとすると、ファイルにFNという名前が付いてしまいます。どうすれば、C2の文字列をファイル名として保存できるのでしょうか。なお、保存するフォルダはc:\変換ファイル\6月です。どなたか教えてください。よろしくお願いします。

  • エクセルのマクロでワークブックの保存しないでの閉じ方を教えてください。

    エクセルのマクロでワークブックの保存しないでの閉じ方を教えてください。 閉じるファイルのファイル名を変数で指定したいのですが、どのようにすればよいのでしょうか。 教えてください。よろしくお願いいたします。 このように書いてみたのですが、うまくいきません。 AAA=ファイル名 Workbook(AAA).Close

  • エクセルで「ファイル保存名」を自動作成したい

    エクセルで、複数の店舗で使用する「販売日報」を作成しております。 各店舗からいただくこの日報は別のシステムで取り込みを行う為、 ファイル名を統一する必要があり、店舗側で勝手にファイル名を作成 できないように、例えば、日報のエクセルのシート内に「ファイル保存」 ボタンを作成し、ファイル名を自動作成するマクロを登録したいと思って おりますが、マクロはほとんど分からず、いいアイデアが浮かびません。 どなたかお知恵をお貸しいただけないでしょうか? ■ファイル名は、下記のように「販売日報」を先頭にして店舗名_保存日_ 保存時間の体裁を考えてます。  ファイル名:販売日報_(店舗名)_(日付)_(時間)   ※(店舗名)は販売日報(エクセル)内で「A1セル」など固定した    場所に入力されており、その値を参照したい。   ※「日付」「時間」も自動作成したい。 うまくお伝えすることができませんが、イメージとしては「ファイル保存」 ボタンを押すと、エクセルで左上の「ファイル」-「名前を付けて保存」 を押した際に表示される「保存先を選択する画面」が表示され、ファイル名 には、『販売日報_(店舗名)_(日付)_(時間)』が既に表示されている、 といった具合です。 いろいろネットを介し調べましたが、ぴったりのものがなく悩んでおりました。 何卒宜しくお願いいたします。

  • EXCEL/VBAでWORDファイル名の先頭に文字を付加して保存する方法

    EXCEL/VBAでWORDファイル名の先頭に文字を付加して保存する方法を教えてください。 編集してファイルを保存するときに、元のファイル名の先頭に任意の文字(変数:f_kenmei)を付加して保存したいと思います。 EXCELファイルの場合は、 ActiveWorkbook.SaveAs Filename:=f_kenmei & ActiveWorkbook.Name で良いと思いますが、WORDファイルの場合はどうしたら良いですか。 EXCEL/VBA初心者につき、宜しくお願いします。

  • マクロExcel2003日付を付けてファイルを保存

    Excel2003でマクロを利用して、日付を付けた形でファイルを保存するようにしたいです。 条件としては、 (1)ファイルをz:\に「【ここに日付を八桁で保存】File1.xls」とする 例えば、20111127File1.xls (2)上書きする場合も、確認をせずに強制的に保存 (3)保存が終わったら、強制的にExcel2003を終了する という具合に書きたいです。 マクロの保存でやってみてわかっている所まで書きました。 Sub SaveEnd() ActiveWorkbook.SaveAs Filename:="Z:\【????】file1.xls", FileFormat:=xlNormal   【上書き保存で、確認をしない】   【Excel2003の強制終了】 End Sub どのように調べれば良いかも含めて、ご指導をいただければ幸いです。

  • エクセル マクロで特定ファイル名だけを開く

    エクセルのマクロで 特定のファイル名だけをフォルダの中から探して 開くというものを作りたいのですが うまくできません。 フォルダを指定して 「060927.xls」というエクセルファイルだけを 開きたいのですが この日付のところが毎日変わるので 「06XXXX.xls」というような 最初が06であと4つの文字が入ってるファイル名だけを 流動的に指定できるようにするには どのようなVBAマクロにすればよいのでしょうか? とても困っています。 是非教えてください!宜しくお願いします。

専門家に質問してみよう