こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

こんにちは。VBA 初心者です。

あるセルに日付を入力しています。
そのセルは書式設定の表示形式・日付で「2001/3/14」と入力した時に、「2001年3月14日」と表示される様に設定しています。

そしてこのファイルをマクロで名前をつけて保存するとき、上記のセル(の値)をファイル名したいのですが、2001\3\14と認識され、エラーが出ます。

セルに日付を入力する時に、出来るだけかな入力はせず、日付をファイル名にして保存するにはどういう方法があるでしょうか。

わかりにくい説明で申し訳ありません。ウィンドウズXP・エクセル2003です。よろしくお願いします。

投稿日時 - 2007-04-14 18:05:45

QNo.2920868

困ってます

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

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 となります。

投稿日時 - 2007-04-14 18:24:03

お礼

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

投稿日時 - 2007-04-14 19:37:35

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.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ですし、また、拡張子も変えられます。

投稿日時 - 2007-04-15 15:44:47

お礼

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

投稿日時 - 2007-04-15 19:03:20

ANo.2

セル D7 に 「2001/3/14」と入力した時の処理です。

Sheets("Sheet2").Select
Sheets("Sheet2").Name = Format(Range("D7"), "yyyy""年""m""月""d""日"";@")

投稿日時 - 2007-04-14 18:23:41

お礼

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

投稿日時 - 2007-04-14 19:36:19

ANo.1

>「2001/3/14」と入力した時に、「2001年3月14日」
>2001\3\14と認識され、エラーが出ます。

ファイル名には"/"等が使えないのでエラーになるのだと思います。
保存時には、日付を読み込んで
Format(Range("A1"),"yyyymmdd") 等として、日付設定を変更した方がよいでしょう。

投稿日時 - 2007-04-14 18:18:40

お礼

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

投稿日時 - 2007-04-14 19:34:13

あなたにオススメの質問