こんばんわ!
VBAでエクセルファイルをバックアップしながら使用しているのですが、10個以上ファイルが溜まったら一番古いものを消したいです。
途中まではできているのですが、古いファイルを選択する方法が分かりませんToT
途中までのソースを乗せますので、アドバイスの程よろしくお願いいたします。
==================
Private Sub backup_bot_Click()
Dim Path As String, WSH As Variant
Dim fc As Long
Dim fn As String
'マイドキュメントにバックアップ
Set WSH = CreateObject("WScript.Shell")
Path = WSH.SpecialFolders("MyDocuments") & "\test"
If Dir(Path, vbDirectory) = "" Then
MkDir (Path)
End If
'ファイルコピー
FileCopy "c:test_date\aaa.xls", Path & "\aaa" & Format(Now, "yyyymmdd") & ".xls"
'ファイル数確認
fn = Dir(Path & "\aaa*.xls")
Do While fn <> ""
fc = fc + 1
fn = Dir()
Loop
'10件以上消去
If fc > 10 Then
'ここが分かりません!
End If
End Sub
==================
あ~ちなみにoffice2003エクセルを使用しています。
XP以降のOSで動かしたいです!
No.1ベストアンサー
- 回答日時:
以下の様に一度日付の情報を配列に入れていって、古いもの(数字の小さいもの)から削除すればOKかと思います。
Private Sub backup_bot_Click()
Dim Path As String, WSH As Variant
Dim fc As Long
Dim fn As String
Dim AD() As Long
Dim I As Integer
'マイドキュメントにバックアップ
Set WSH = CreateObject("WScript.Shell")
Path = WSH.SpecialFolders("MyDocuments") & "\test"
If Dir(Path, vbDirectory) = "" Then
MkDir (Path)
End If
'ファイルコピー
FileCopy "c:\test_date\aaa.xls", Path & "\aaa" & Format(Now, "yyyymmdd") & ".xls"
'ファイル数確認
fn = Dir(Path & "\aaa*.xls")
Do While fn <> ""
'日付の部分のみ配列に入れる
ReDim Preserve AD(fc) As Long
AD(fc) = Val(Mid(fn, Len("aaa") + 1, 8))
fc = fc + 1
fn = Dir()
Loop
'古いものを11件以上消去
For I = 11 To fc
Kill Path & "\aaa" & WorksheetFunction.Large(AD, I) & ".xls"
Next I
End Sub
No.2
- 回答日時:
osarusan0214さん
こんにちは。
EXCEL2003のVBAの機能で「FileSearch」があり、それを使うと便利です。
該当データを全件取得するし、名前順や作成順に並べ替えもします。
※必要ならヘルプを参照してください
今回は作成順(新しい順)に並べ替え、古いファイル11件以上を削除をサブルーチン化してみました。
【使い方】
'ファイル数確認
Call 古いファイル削除(Path , "aaa*.xls")
End Sub
Sub 古いファイル削除(フォルダ As String, ファイル名 As String)
Dim I As Long
Dim 件数 As Long
With Application.FileSearch
.NewSearch
.LookIn = フォルダ
.Filename = ファイル名
.SearchSubFolders = False
件数 = .Execute(msoSortByLastModified, msoSortOrderDescending)
If 件数 <= 10 Then Exit Sub
For I = 11 To 件数
Kill .FoundFiles(I)
Next I
End With
End Sub
失礼いたしました。
説明不足でした^^;
フォルダの中には他にもいくつかファイルが入っております^^;
そのため、ファイル全てを並べ替えるご提示いただいたソースだと駄目そうですToT
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
AccessVBAで作成したExcelファイルを削除する方法は?
Visual Basic(VBA)
-
ACCESS VBAからのファイル削除
その他(プログラミング・Web制作)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
EXCEL VBAマクロ中断でデバッグ(コード閲覧)できないようにしたい
Visual Basic(VBA)
-
5
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
6
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DVDshrinkによってC:\\の容量不足
-
EXCELで特定ファイルの動作が重い
-
EXCEL2016のファイルが突然、古...
-
EXIF情報の削除をした後、プロ...
-
イラレ10 動作が急に遅く(不...
-
Excelの履歴を、過去1月に渡っ...
-
hardcopy.log って何ですか?
-
thunderbirdのメールが見れなく...
-
1冊のPDFファイルを2冊に分冊し...
-
ACCESS、VBAでEXCELファイルを...
-
iTunesのプレイリストが消えま...
-
鼻くそファイルがあるフォルダ...
-
Adobe Readerで文書が開けません
-
パワーポイントのスライドを1...
-
コマンドプロンプト 閉じた時の...
-
ワードパットをワードに
-
ファイル移動中にデータが消えた!
-
フォルダの削除について
-
沢山の写真を一度にPCから消す...
-
C:\\Windows\\SoftwareDistribu...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの履歴を、過去1月に渡っ...
-
ACCESS、VBAでEXCELファイルを...
-
仮想isoイメージファイルの書き...
-
EXCELで特定ファイルの動作が重い
-
hardcopy.log って何ですか?
-
EXIF情報の削除をした後、プロ...
-
DVDshrinkによってC:\\の容量不足
-
EXCEL2016のファイルが突然、古...
-
共有ファイルを誰かが勝手に操...
-
Real playerで助けてください ...
-
VBAでファイルを消したい
-
thunderbirdのメールが見れなく...
-
本当に削除して、良いのでしょ...
-
DVD shrinkでのISOファイル作成...
-
<Excel>アドインから削除して...
-
イラレ10 動作が急に遅く(不...
-
Crash Dump Eventについて。
-
別CDからファイルをコピーしたC...
-
大至急お願い致します。 ファイ...
-
USB内のフィアルの復活ソフトは?
おすすめ情報