エクセルマクロでファイルの更新時間を4桁で表示する方法

このQ&Aのポイント
  • エクセルマクロを使用して、特定のファイルの更新時間を4桁で表示する方法について教えてください。
  • ファイルの更新時間を取得するために、OpenTextメソッドを使用します。
  • 保存するファイル名に、ファイルの更新時間を4桁で表示する方法はありますか?
回答を見る
  • ベストアンサー

エクセルマクロで抽出時間を4桁で返す

下記の様に、開いたファイルを保存する際に別ファイルの更新日時をファイル名として使用したいのですが、2011/10/10 10:02 だとすると、時間の"0"の部分が抜けて20111010_12となってしまいます。必ず4桁表示にする書き方があればご教示下さい。よろしくお願いします。 Sub cngsave() Dim a As String a = FileDateTime("C:\001\ABC.xls") Workbooks.OpenText Filename:= _ "C:\001\VVV.xls" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\001\保存\" & Year(a) & Month(a) & Day(a) & "_" & Hour(a) & Minute(a) & ".xls" End Sub

  • OKBob
  • お礼率94% (97/103)

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

format関数を使います。 sub macro1()  dim myPath as string ’これは趣味の問題  dim myFile as string  mypath = "c:\001\保存\"  myfile = format(filedatetime("C:\001\ABC.xls"), "yyyymmdd_hhmm") & ".xls"  application.displayalerts = false  activeworkbook.saveas filename:=mypath & myfile end sub

OKBob
質問者

お礼

なるほど! ユーザ定義で使うあの形ですね。 お陰さまできれいにまとまりました。 助かります、ありがとございました。

関連するQ&A

  • エクセル マクロの記述(フォルダーの移動、削除)

    現在開いているエクセルのファイルにマクロを記述し、 1 「処理済」というフォルダーに、開いているエクセルファイルを移動して、同じ名前でエクセルを保存する。 2 「CSV」というフォルダーに、開いているエクセルファイルをCSVファイルに変換して名前を「処理.csv」とし保存する。 3 現在開いているエクセルファイルは削除する。 以上の三つの処理をさせようと、以下のようにしましたが、1,2の処理は出来ましたが、3の開いているエクセルファイルが残ってしまいます。 以上三つの処理が一度に出来るマクロの記述を教えて下さい。 よろしくお願いします Sub マクロ() ActiveWorkbook.SaveAs Filename:="C:\処理済\" & ActiveWorkbook.Name ChDir"C:\CSV" ActiveWorkbook.SaveAs Filename:= "C:\CSV\処理.csv" _ , FileFormat:=xlCSV, CreateBackup:=False Application.DisplayAlerts = False If Workbooks.Count = 1 Then Application.Quit Else ActiveWorkbook.Close End If Application.DisplayAlerts = False End Sub

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

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

  • マクロが思い通りに動きません

    エクセルでマクロを使いボタンを 作りました。ボタンを押すとHDDとDVDに保存される仕組みになっています Sub DVD() ChDir "E:\" ActiveWorkbook.SaveAs Filename:=Format(Now, "yyyy-mm-dd(hh時mm分ss秒)"), FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub Sub HDD() ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\***\デスクトップ\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub これだとDVDへ保存が上手くいきません。DVDからエクセルを開いて使えば問題ないのですが、デスクトップから開くと日付入りのデータがデスクトップに保存されてしまいます。 どうやって書き換えたらいいでしょうか

  • Excelシート1シートのみを指定フォルダへ保存

    Excelのシート1のみを、本日の日付と名前の入ったセル(I7)を保存する時の名前にして指定したフォルダへ保存したいと思っています。 1、シートは本日の日付+I7セルに入っている値を名前にする。 2、フォルダはCではなくV:\○○\○○\○○\○○\○○\○○\○○に格納 3、シート1以外のシート2、シート3は保存せず閉じる 4、格納後○○に保存しました。と表示 試行錯誤し、下記のように記述してみたのですが、 Sub Macro1() 'Option Explicit Sub Sample() Dim xSheet As Worksheet Dim myFile As String Dim myName As String Set xSheet = ActiveSheet ThisWorkbook.Worksheets("シート名").Copy 'myName = ActiveWorkbook.Worksheets(1).Name 'myFile = ThisWorkbook.Path & "\" & myName & ".xls" myFile = ThisWorkbook.Path & "\" & xSheet.Range("I7").Value & ".xls" Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=myFile Application.DisplayAlerts = True ActiveWorkbook.Close End Sub 日付を指定して保存 Sub test()  Dim Filename As String  Filename = Format(Date, "yyyy年mm月dd日") & ".xls"  ActiveWorkbook.SaveAs "C:\My Documents\" & Filename End Sub 日付とI7セルの名前を合せてブックの名前としたい場合どうVBEで記述すればいいのかわからないので詳しい方がおられましたら、 よろしくお願いいたします。 あまり詳しくないので、そのままコピーできるか、○○の部分を指定フォルダ名に変えてください。等の注釈を付けていただけると助かります。

  • セルの値を使ってファイルを保存

    1.現在以下の内容で"C8"セルの値を取得してファイルを保存しています。 Sub ファイル保存() C = Range("C8").Value ActiveWorkbook.SaveAs Filename:="C:\Users\moto\Desktop" & C & ".xls" End Sub 2.ファイル名保存時に"H1"の日付もプラスしたいです。 現在は"H1"セルには"2008/11/17"と記入されてますがこれを"20081117"と変更し、"20081117_A見積書"というファイル名で保存する。("C8"=A見積書)

  • エクセルマクロでブック作成

    新規ブックを作成したいのです。 Sub aaa() Workbooks.Add.SaveAs Filename:="C:\temp\aaa.xls" End SubEnd Sub これで出来るのですが、保存場所が問題なんです。 上記だとC:\temp\ですね。 いろいろな環境で使うので保存場所を「 this wookbook のあるフォルダ」に指定したいのですが、出来ますでしょうか? よろしくお願いします。

  • ワークブックに名前をつけて保存するマクロ

    教えてください!! ワークブックで名前をつけて保存するときのマクロなんですが、 自動記録すると下記のように記述されています。 ActiveWorkbook.SaveAs Filename:="C:\○○○\○○○\□□□□□.xls" この□□□□□の部分はインプットボックスを表示させたいのですが、 こういうマクロを組むことはできますか?

  • エクセル VBA シート保存ボタン

    Sheet上にボタンを作成 ボタンを押すと保存するようにしています! 以前ここでSheet2枚をコピー出来るような 記述教えてもらったのですが・・ 1枚ならどう変化して良いか・・ 記述を書きましたが 何処が違うか教えて下さい! Private Sub CommandButton1_Click()   Dim FileName  As String   Dim FileExt   As String   Dim BkName   As String   Dim OldWkbook  As Workbook   Dim NewWkbook  As Workbook   Const StName1  As String = "ko"      '   Application.DisplayAlerts = False   Set OldWkbook = ActiveWorkbook   '   'ファイル名を取得   BkName = OldWkbook.Sheets(StName1).Range("A1").Value   FileName = BkName & Format(Now, "yyyy-mm") & ".XLS"   '   FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName)   If FileName = "" Then     Exit Sub   Else     If Right(FileName, 4) <> ".XLS" Then       MsgBox "ファイル名が異常です。"       Exit Sub     End If   End If   '   OldWkbook.Sheets(Array(StName1)).Copy   Set NewWkbook = ActiveWorkbook   For wIx = 1 To NewWkbook.Sheets(1).Shapes.Count     NewWkbook.Sheets(1).Shapes(wIx).Delete    Next   NewWkbook.Sheets(1).Name = StName1   '   FileName = "D:\保存\計画\" & FileName   '   If Dir(FileName) <> "" Then     '##ファイルが既に存在する     If MsgBox("既に指定のファイルが存在します。 置き換えますか?", vbOKCancel, "置き換えの確認") = vbCancel Then       NewWkbook.Close savechanges:=False       '##保存せずに終了       Exit Sub     End If     '##指定ファイル置き換え保存     NewWkbook.SaveAs FileName:=FileName   Else     '##ファイルを新規保存     NewWkbook.SaveAs FileName:=FileName   End If   '   NewWkbook.Close savechanges:=False   Application.DisplayAlerts = True End Sub 教えて下さい!

  • Excel : OpenTextメソッドが正常に動作しないのはなぜ?

    下記のようなマクロを作りました。 Sub sample() FileName = ThisWorkbook.Path & "\test.txt" Workbooks.OpenText FileName:=FileName, Comma:=True ActiveWorkbook.SaveAs FileName:=FileName, FileFormat:=xlCSV ActiveWorkbook.Close End Sub test.txt には次のテキストが書かれています。 "あ"," あ " 上記のマクロを実行すると、テキストの中身は次のようになってしまいます。 """あ"",""",あ,"""" 本来であれば、テキストの内容には変化が全くないはずだと思います。 原因が不明なのですが、マクロの動作確認をしたところ、 OpenTextメソッドでテキストを開いたときにすでに、 カンマの位置で区切られてセル内に入っていませんでした。 どのようにすればOpenTextメソッドは希望する動作をしてくれるのでしょうか?

  • エクセル VBA についてご教授願います。

    ActiveWorkbook.SaveAs Filename:= "C:\Documents and Settings\ユーザー名\材料明細\" & Range("A1").Value & ".xls" このコマンドで、材料明細に("A1")の値のファイル名で保存しています。 材料明細にいくつかのフォルダがあります。そのフォルダを選択して、("A1")の値のファイル名で保存する方法を教えて下さい。

専門家に質問してみよう