• ベストアンサー

Excel マクロで名前を付けて保存

Excel で NOW() 関数で表示させてあるセル(D1)があります。 このブックは、閉じる前に「名前を付けて保存」します。 そのときファイル名の後に D1 という文字を加える操作を、キー入力なしにマクロで行いたいのですが、どうしたらよいでしょうか。 教えて下さい。よろしくお願いします。

  • awazo
  • お礼率97% (616/629)

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.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

awazo
質問者

お礼

merlionXXさん 巧くいきました。 ありがとうございます。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

#1です。 x = Sheets("Sheet1").Range("D1").Value を x = Format(Sheets("Sheet1").Range("D1").Value, "h""時""mm""分""")  に変えてください。 そのままだとファイル名に使えない文字が入ってしまいます。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

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

awazo
質問者

お礼

merlionXXさん ありがとうございました。

awazo
質問者

補足

merlionXXさん ありがとうございます。 > ARG1:=ThisWorkbook.Name & x こうしますと、FileName.xls のあとに"x"が書き加えられ、拡張子が変わってしまいます。 それと、Dialogs.Show を行わず、直接保存させてしまう方法はないのでしょうか。

関連するQ&A

  • エクセルのマクロを使ってシートごとに名前をつけて保存したい

    マクロ初心者です。宜しくお願いします。 1つのブックにシートが複数あります。 それぞれシートをコピーして新しいブックを作成し そのブックに名前をつけて保存したいです。 例えばブック名が「売上管理」でそのシートが「A店」「B店」「C店」と3シートあるとします。 シート名:A店を他のブックにコピーしてマイドキュメントに名前を付けて 保存する場合のマクロを教えてください。 ちなみにその際のブック名は「シート名+任意のセル(D2)」と できれば一番助かります。 ちなみにD2のセルにはToday関数が入ってます。

  • 自動で、名前をつけて保存

    エクセルブックの名前をつけて保存について質問です。 マクロを使用して、ブック名を「A1セル内の文字列+作成日(today関数セル)」という事は可能でしょうか?ご教授お願いします。

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

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

  • Excel 終了マクロ

    次のような「終了マクロ」を作りたいと思っています。 「終了」ボタン→「名前を付けて保存」(保存ブックは別名にする)→もとのブックの書替え→ 「(新ブック名)で保存されました」というメッセージボックス→「OK」ボタン→終了 (条件) 1.「終了」と「OK」のボタン操作以外は全自動、キー入力なしとします。 2.もとのブックの書替えは、次の2工程です。   (1)一つのセルの値を2値選択で入れ換え   (2)別の一つの行の数値を全てクリア (疑問点) 名前を付けて保存のとき、もとのブックは閉じられてしまうので困ったなと思っています。 まだ実験前なのですが、うまくいくのでしょうか。 教えて下さい。よろしくお願いします。

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

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

  • マクロの保存

    エクセルのマクロについて教えてください。エクセル2010でセルをダブルクリックすると、同一フォルダ内のPDFファイルデータを表示するというマクロを作ったのですが、保存する際に「次の機能はマクロ無しのブックに保存できません・VBプロジェクト~」と表示されExcelマクロ有効ブック(拡張しxlsm)に替えて保存するとマクロのコード自体は残っているのですが、Not find fileと出てしまいます。また最初からExcelマクロ有効ブックでコードを入力しても同様の結果になります。このような場合どのように保存すればいいのでしょうか?

  • エクセルにマクロが!

    エクセル(Excel2000)で、マクロを使っていないのにマクロが使われてしまいます。 例えば、 まず普通にスタート→プログラムと表示していき、エクセルを立ち上げる。 次にどこのセルでもいいから適当に文字を入力する。(例えば、A1にaと入力する) そして、ファイル→名前を付けて保存で保存する。 こうしてできたエクセルのファイルを普通に立ち上げると、「このファイルはマクロが使われています」と、マクロを有効にするか、無効にするかを確認する画面が出てきてしまいます。 どうしてでしょうか。直す方法はあるのですか。よろしくお願いします。

  • EXCEL のマクロを作りたいんですが・・・

    マクロはあまり詳しくありません。マクロの記憶で設定し、多少内容の変更をする程度です。 マスターのBOOKがあり、月ごとにデータを入力し、その都度名前を付けて保存します。 (データの量はまちまちです) Sheet1にデータを入力し、Sheet2には関数が入っております。 使いたいのはSheet2にあるデータなのですが、データが無い欄は関数が入っていますので、そのままではデータとして使うのが面倒です。 CSVで出力するにしても、空の関数の欄が,,,,と出ます。 データが入っているセルだけを範囲指定して、値の貼り付けをし、使用していない空のセルの関数を消すというマクロが出来るでしょうか?

  • エクセルで「名前を付けて保存する」マクロ

    エクセルのマクロに関して教えて下さい。 作成したエクセルの原稿を指定したフォルダに 「名前を付けて保存する」マクロを作成できればと思っています。 同じ名前で上書きなら問題ないのですが その都度違った名前で保存したい時に困っています。 名前の時だけ手動で入力するか 原稿の中に書いてある名前をコピーする方法でも良いです。 よろしくお願いします。

  • マクロで「名前を付けて保存」を実行したいのですが

    エクセル2000でマクロを作成しています。 そのマクロを作成したファイルを、各ユーザーが使用しますが、作業途中のファイルを「名前を付けて保存」したいと考えています。 しかし、各ユーザーのPC環境がまちまちなので、保存ファイルのパス名の記述が画一的に出来ない状況となっています。 そこで、エクセルの名前を付けて保存のショートカットキー『F12』の押下動作をユーザーフォーム上のコマンドボタンで出来るようにしたいのです。 単純にF12キーを押せばいいのですが、ユーザーはショートカットキー操作は全く慣れていないので、ユーザーフォーム上のオブジェクトだけで操作が出来るようにしたいと考えています。 どなたか、この方法がお分かりの方がおられましたら、ご教示頂きたくお願い致します。

専門家に質問してみよう