電子書籍の厳選無料作品が豊富!

2004・07.05 10:38.28

2004年7月5日10時38分28秒と現時刻をファイル名で保存したいと考えています。
コードをご教授していただけないでしょうか。

VBを習い始めて初級を卒業したくらいです。

A 回答 (3件)

まず、


正:yyyymmddhMMss
誤:yyyymmddhhMMss
と、フォーマットの記述が間違っています。

それと、
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\デスクトップ\保管庫\" & "yyyymmddhMMss" & ".xls"
とやってしまうと
"yyyymmddhMMss"の部分は「yyyymmddhMMss」という文字列として
認識されてしまうので、そのまま表示されるのは当然と言えば当然。

多分kennickyさんは
Filename = Format(ActiveCell.Value, "yyyymmddhhMMss")
の記述で混乱してしまっているのではないでしょうか?

format(A, "yyyymmddhhMMss")とすると
AをyyyymmddhhMMss(例えば20040705163450)形式に変換して返す、
といった風になるので、
先程の例の
Filename = Format(ActiveCell.Value, "yyyymmddhhMMss")
ではアクティブなセルの値をyyyymmddhhMMss形式で返す、
という風になるのはお分かりになりますか?
そして、Filenameには
Format(ActiveCell.Value, "yyyymmddhhMMss")
の結果が入っている事になります。

ですのでファイル名を作成する部分では
"C:\Documents and Settings\デスクトップ\保管庫\" & "yyyymmddhMMss" & ".xls"
ではなく、
"C:\Documents and Settings\デスクトップ\保管庫\" & Filename & ".xls"
とやる必要がありますね。
拙い説明ですが、いかがでしょうか?
    • good
    • 0
この回答へのお礼

shimesabaさん 素早い回答本当に有難うございます。
生半可な知識で質問し、どの様に質問してよいのかすら十分に把握していません。にも拘らず正確に回答して頂き感謝感謝。

できました。本当に有難うございます。

お礼日時:2004/07/05 23:34

yyyymmddhmmssはどこにも宣言されていないので


エラーが出るのは当然ではないでしょうか?

>ファイルのセル(n 3)をnow関数で日時を取得しそれを
というのがあまり良くわかりませんが
now関数というのはあくまで現在日時・時刻を取得する関数では?

kennickyさんが仰っているような感じでやってみました。
セル(1, 1)には
2004/7/5 16:34:50
と記述してあり、その内容を取得するとして

Sub hozon()
Dim Filename As String
Cells(1, 1).Select
Filename = Format(ActiveCell.Value, "yyyymmddhhMMss")
End Sub

これでFilenameの値は
"20040705163450"
になっていると思うので、これをファイル名に使用すればOKかと。
やりたい事とズレてますか?

この回答への補足

shimesabaさん 有難うございます。
以下のようにやってもファイル名はyymmbb・・・・となり日付がでません。
あまりにも基本的なことが分からず申し訳ありません。もう少し教えていただけないでしょうか。


Sub hozon()

Dim Filename As String
Cells(1, 1).Select

Filename = Format(ActiveCell.Value, "yyyymmddhMMss")

ChDir "C:\Documents and Settings\デスクトップ\保管庫"
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\デスクトップ\保管庫\" & "yyyymmddhMMss" & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
End Sub

補足日時:2004/07/05 21:51
    • good
    • 0

こんにちは。

maruru01です。

現在の日時は、Now関数で取得出来ます。
日時を整形した文字列は、Format関数で取得出来ます。

filename = Format(Now, "yyyymmddhhmmss")

で、変数 filename に、「20040705103828」のような値が格納されます。
あとは、これにフォルダのパスと拡張子を付けて下さい。

この回答への補足

Sub hozon()
Dim y As Date
Dim m As Date
Dim d As Date
Dim h As String
* Dim f As String
Dim s As String
* Filename = Format(Now, "yyyymmddhhffss")

yyyymmddhmmss = Format(Worksheets(1).Cells(3, 14).Value, "yyyymmddhmmss")

ファイルのセル(n 3)をnow関数で日時を取得しそれを
ファイル名で保存したいのですが、Filinameで変数が定義されてませんとでます。よく解りません。もう少し教えて頂けないでしょうか。          * mをfに変更

補足日時:2004/07/05 12:21
    • good
    • 0
この回答へのお礼

maruru01さん 早速の回答有難うございました。

次のようにかきましたが駄目でした。
Sub hozon()
Dim y As Date
Dim m As Date
Dim d As Date
Dim h As String
* Dim f As String
Dim s As String
* Filename = Format(Now, "yyyymmddhhffss")

yyyymmddhffss = Format(Worksheets(1).Cells(3, 14).Value, "yyyymmddhffss")

ファイルのセル(n 3)をnow関数で日時を取得しそれを
ファイル名で保存したいのですが、Filinameで変数が定義されてませんとでます。よく解りません。もう少し教えて頂けないでしょうか。          * mをfに変更

お礼日時:2004/07/05 13:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!