過去ログ

                                Page      15
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼一定期間後にデータを自動で削除  茶宝 02/8/29(木) 17:03
   ┗Re:一定期間後にデータを自動で削除  BOTTA 02/8/29(木) 20:45

 ───────────────────────────────────────
 ■題名 : 一定期間後にデータを自動で削除
 ■名前 : 茶宝
 ■日付 : 02/8/29(木) 17:03
 -------------------------------------------------------------------------
   こんにちは。よろしくお願いします。

以下のようなことは可能でしょうか?

1.データ表をもつブックを開くときに、
2.システム日付から、3ヶ月前の日付(基準日)を取得し、
3.登録日を探索して、基準日前に該当する登録日のうち、最新日付の行番号
(最終行)を取得、
4.データ行の開始から最終までをカットして、
5.バックアップブックを開いて、
6.バックアップブックの最終行の下にカットした行を挿入。
7.バックアップブックを保存終了して、
8.元の作業用ブックに戻る。

つまり、登録日が現在の日付から3ヶ月経過している行のデータだけを、自動的にバック
アップして、元データからは削除するようなマクロを作りたいのです。

データのイメージとしてはこんな感じです。

登録日 ID 趣味 血液型 家族構成 性別 ・・・
8/9  1 ゲーム  A   弟1人  男  ・・・
10/21  2  読書  B   兄1人  女  ・・・
 ───────────────────────────────────────  ■題名 : Re:一定期間後にデータを自動で削除  ■名前 : BOTTA  ■日付 : 02/8/29(木) 20:45  -------------------------------------------------------------------------
   茶宝 さん、こんにちは
試してみてください。
Sub aaa()
'Open時、自動でやるなら
'Private Sub Workbook_Open()
'に変えてThisWorkbookモジュールに貼り付けて下さい。
Dim D3Mago As Date
Dim wb01 As Workbook, wb02 As Workbook
Dim LastRow01 As Long, LastRow02 As Long
Dim rr As Long, r01 As Range
  '3ヶ月前の日付を取得
  D3Mago = DateAdd("m", -3, Date) 'xl2000限定
  Set wb01 = ThisWorkbook
  'バックアップBOOKは同一フォルダ内にありファイル名は"Bup.xls"として
  Set wb02 = Workbooks.Open(ThisWorkbook.Path & "\Bup.xls")
  'どちらのシートもBOOK内の一番左にあるものとして、
  LastRow01 = wb01.Worksheets(1).Range("A65536").End(xlUp).Row
  LastRow02 = wb02.Worksheets(1).Range("A65536").End(xlUp).Row

  wb01.Worksheets(1).Activate
  Set r01 = wb01.Worksheets(1).Range("A" & LastRow01 + 1)
  For rr = LastRow01 To 2 Step -1
    If Range("A" & rr).Value < D3Mago Then
      Set r01 = Union(r01, Range("A" & rr))
    End If
  Next
  'コピーして
  r01.EntireRow.Copy wb02.Worksheets(1).Range("A" & LastRow02 + 1)
  '削除
  r01.EntireRow.Delete
  '保存して閉じる
  wb02.Close True
  Set r01 = Nothing: Set wb01 = Nothing: Set wb02 = Nothing
End Sub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 15