[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『不要なフォルダーの削除について』(hita)
サーバー上に「データ」という名前のフォルダーがあり、フォルダー内には日付(例0101)の名前のフォルダーと、その日に処理を行う圧縮ファイルがあります。圧縮ファイルの処理が終了したら、日付が名前のフォルダーを作成し、その中に圧縮ファイルを移動し一定期間保存しています。
圧縮ファイルの解凍からデーター集計まで、集計用のエクセルファイルを作成しマクロで作業しています。マクロで日付の名前のフォルダーを作成し、圧縮ファイルの移動もしています。その際、可能であれば古い日付のフォルダを削除できれば思っています。
データという名前のフォルダー内には、10個程のフォルダーしか保存しないようにと言われている為、古いフォルダーを毎日1個削除しています。
手動でできる作業ではありますが、新しいフォルダをマクロで作成できるようにしたので、一緒に古いのが削除できたら?と思いました。
今回、教えて頂きたいのは「データ」フォルダ内の日付が一番古いフォルダーを削除するマクロです。
説明が分かりづらく大変申し訳ございません。
どうぞ、よろしくお願いいたします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
「データ」という名前のフォルダーがあり、フォルダー内には日付(例0101)
日付4ケタですか?
0101 というフォルダと 1231 というフォルダはどっちが古いと判断するんでしょう?
年をまたぐときの処理はどうしようと考えてますか?
(え) 2022/01/18(火) 13:53
いつも手動で削除していたので、うっかりしてました。
4桁なんですよね。
手動でした方がよさそうですね。
お手数おかけしました。
(hita) 2022/01/18(火) 14:00
FileSystemObjectのDateCreatedプロパティで、フォルダの作成日時が取得出来ます。 同時に複数のフォルダをコピーして作成する事が無ければ(マクロで1個ずつ作成しているのであれば) 作成日の古いフォルダを特定することは可能ではあります。
Sub sample() Dim fso As Object, fld As Object Dim buf As Date, fn As String Set fso = CreateObject("Scripting.FileSystemObject") buf = Now For Each fld In fso.GetFolder("\\サーバ\データ").SubFolders Debug.Print fld.DateCreated & ":" & fld.Name If buf > fld.DateCreated Then buf = fld.DateCreated fn = fld.Name End If Next fld MsgBox "作成日最古:" & fn End Sub (qwerty) 2022/01/18(火) 21:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.