• ベストアンサー

日付を入力したセルをファイル名にして保存するには

こんにちは。VBA 初心者です。 あるセルに日付を入力しています。 そのセルは書式設定の表示形式・日付で「2001/3/14」と入力した時に、「2001年3月14日」と表示される様に設定しています。 そしてこのファイルをマクロで名前をつけて保存するとき、上記のセル(の値)をファイル名したいのですが、2001\3\14と認識され、エラーが出ます。 セルに日付を入力する時に、出来るだけかな入力はせず、日付をファイル名にして保存するにはどういう方法があるでしょうか。 わかりにくい説明で申し訳ありません。ウィンドウズXP・エクセル2003です。よろしくお願いします。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

Sub mySave() Dim ws As Worksheet Set ws = Sheets("sheet1") ThisWorkbook.SaveAs Format(ws.Range("A1"), "yyyy\年mm\月dd\日") & ".xls" End Sub Sheet1のA1の日付で保存する場合です。 2001年03月14日.xls となります。

da-rin-ko
質問者

お礼

おかげさまで、思いとおりに保存することができました。 早速のご回答、ありがとうございました。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >そのセルは書式設定の表示形式・日付で「2001/3/14」と入力した時に、「2001年3月14日」と表示される様に設定しています。 それは、VBAの基本的なことだと思いますが、セルの書式が、「2001年3月14日」のように、yyyy年mm月dd日となって、間違いないのなら、Rangeオブジェクトの、Valueプロパティ(プロパティを付けない場合も含め)ではなくて、Text プロパティです。 それが不確実なら、以下の二番目のように、Format 関数でのテキスト変換が必要になるとのですね。 Sub TestSave()  Application.Dialogs(xlDialogSaveAs).Show _   (ThisWorkbook.Worksheets("Sheet1").Range("A1").Text) End Sub 不確実な場合 Sub TestSave2()  Dim Fn As Variant  Fn = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value  If IsDate(Fn) Then   Fn = Format$(Fn, "yyyy年MM月dd日")   Application.Dialogs(xlDialogSaveAs).Show (Fn)  Else   MsgBox "日付値ではありません。", 64  End If End Sub なお、ダイアログの場合、拡張子は、キメウチしなくてもよいと思います。そのままなら、xlsですし、また、拡張子も変えられます。

da-rin-ko
質問者

お礼

ご丁寧に説明いただき、ありがとうございます。 おかげさまで思い通りに保存することができました。

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.2

セル D7 に 「2001/3/14」と入力した時の処理です。 Sheets("Sheet2").Select Sheets("Sheet2").Name = Format(Range("D7"), "yyyy""年""m""月""d""日"";@")

da-rin-ko
質問者

お礼

教えていただいたコードですと、シート名が変わってしまいました。 でも、これをヒントに Sheets("Sheet2").Name を変数にすると無事保存することができました。 早速のご回答、ありがとうございました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>「2001/3/14」と入力した時に、「2001年3月14日」 >2001\3\14と認識され、エラーが出ます。 ファイル名には"/"等が使えないのでエラーになるのだと思います。 保存時には、日付を読み込んで Format(Range("A1"),"yyyymmdd") 等として、日付設定を変更した方がよいでしょう。

da-rin-ko
質問者

お礼

おかげさまで思いとおりに保存することができました。 早速のご回答、ありがとうございました。

関連するQ&A

  • エクセルのファイルを、A2セルに入っている日付をファイル名として、保存したい。

    エクセルのVBAでファイルに名前を付けて、指定場所に保存したいのですが、過去の質問を読んでもよく分からなかったので教えてください。 A2セルに、2007/07/26 という日付が入っています。 この日付をファイル名として保存したいのですが、日付の形式は20070726とか、070726にしたいです。 ファイルの保存場所パスは、例えば、 S:\AAA\BBB\CCC\DDD というフォルダの中です。 ActiveWorkbook.SaveAs のあとにどのように続ければよいのでしょうか? 丸投げで申し訳ありませんがよろしくお願いいたします。

  • EXELの日付入力ができない

    セルに「2007/4/24」と入力しても、日付として認識されません。 勝手にセル内容が「=2007/4/24」と計算式になってしまいます。 そのため書式のセルで表示形式を日付にしていても、2007÷4÷24の値を日付連番とするめちゃくちゃな日付になってしまいます。 あるワークシート全体でその現象が起こっている(他のシートは正常)ので、そのシートのどこかの設定が狂っているのだと思うのですが… よろしくお願いいたします。

  • 日付入力されているセルの均等割付

    Excelのセルに日付を入力していて、表示形式をH15.2.28などと設定している場合、普通の文字列だと均等割付の書式設定ができるのに、日付のセルのみ均等割付ができません。どうしたらいいのでしょうか。

  • エクセルで、ファイル内に入力した日付を、保存時のファイル名に反映したい

    エクセルで、ファイル内に入力した日付を、保存時のファイル名に反映したい。 お世話になります。請求書の作成・保存を効率よくしたいと考えています。 例:作ったファイルの、ある特定のセル(日付を入力)で平成22年6月と表示された状態で名前をつけて保存をクリックすると、ファイル名の欄に自動的に2206・・と反映され、なおかつ、自分の言葉で現場名などを入力して2206グーマンション・・という風にして保存したいです。もっというと、保存先のフォルダも自動的に2206フォルダとかに入るようにできないでしょうか?? 詳しい方、教えていただけるとありがたいです・・!お願いします

  • エクセルの書式設定

    エクセルで入力する時或る値のみ勝手に書式設定が変更されます。 又 セルの書式設定で表示形式を設定しなおしてもそのセルのみ日付表示になります。 又 その時は設定できても保存して又ファイルを開くと日付表示に設定が変わってしまいます。エクセルの修復もしたのですが治りません。どうかお助けください。 OSはXP エクセル2003です。お願いします。

  • Excelで日付自動入力+保存ボタン

    こんにちは。 Excelでツールボタンを作り、それに次のような機能を付けたいと思います。 「設定しておいたセルに日付(設定によっては時間も)を入力し、その後にファイルを上書き保存する」 ボタンを2つ設置して、一つを「日付を入力するセルを指定したり、表示形式が設定できたりするウィンドウを開く」とし、もう一つを「設定したセルに現在の日付を入力して上書き保存する」とすれば実現出来そうと考えました。さらにこれをPersonal.xlsに実装する、と。 My Documentsフォルダ内に設定内容を保存することになるのかな、と思います。 これよりもスマートな方法、実装にいい方法があれば、ご教授願います。 例えば、「日付を入力するセルの設定の仕方は、数式バーのように実際のセルをクリックすることにより設定される」とかです。 よろしくお願いします。

  • カレンダーコントロールからセルとシート名に日付を入力

    エクセルVBAコードについてですが、マクロを実行すると、カレンダーコントロールが表示され、選択したカレンダーの日付をクリックすると、任意に指定したセルとシート名にその日付を表示させたいのですが、どのようなコードを書けばよいのか教えてください(><) ちなみに、今はインプットボックスから日付を入力する方法をとっていますが、都度「2008年○月○日」と入力しなくてはいけませんので、効率が悪く困っています。 どうぞ宜しくお願い致します。

  • セルの書式設定で日付にできない

    「20061010」というデータ(セルの書式設定の表示形式は"標準"になっています)を「2006/10/10」にしたいのですが、セルの書式設定の表示形式を"日付"にしたら「###############」(数不明)になるのです(涙)無理やりMID関数を使って"/"を入れたりしてできなくはないのですが、面倒です。「###############」になるのはなぜでしょうか?一発で日付データにできないでしょうか?宜しくお願いします。

  • 日付のセルをファイル名にしたい

    お世話になります。 さてかなり前に2つのセルの内容をファイル名にしてpdfで保存して印刷画面の表示までをマクロにする下記のコードを教わって多くのエクセルで使用しているのですがE22が日付の場合が出てきました。 (E22").Textや.ValueやNETで探したコードも試したのですがダメでした。 (要するに分かっていません) やりたいことは、ファイル名は200216XXXXのようにyymmdd+A1セルの内容にしたいのです。 別のセルにE22を参照して「200213」というように表示させてもOKです。 一番簡単な方法を教えて下さい。 Sub 保存印刷() Sheets("提出").ExportAsFixedFormat Type:=xlTypePDF, _ Filename:="\\***\XXXX\?????" & "\" & Range("E22") & Range("A1") & ".pdf" Application.Dialogs(xlDialogPrint).Show End Sub

  • EXCELで関数付のセルをコピー(日付&時間)

    初めて投稿します。 セルに=NOW()と入っているものを他のセルにコピー した時に、=セル とすると日付と時間が表示されますが =NOW()の値は変化しますので、保存後再度開いてデータ入力しますと現在の日付、時間になってしまいます。 これを最初の入力時の表示にしたいのですが... 編集→形式を選択→値でやれば出来ますが=???の様な指定は出来ないのでしょうか? 宜しくお願い致します。

専門家に質問してみよう