新しいシートをコピーして一番古い日時を持つシートに貼り付けるには?

Question 99.3 Excel VBA Borad (掲示板)より Previous Next
同一ブック内に11シ-トあり、それぞれのシ-トには名前がつけてあります。sheet1、過去1、過去2、過去3・・・・過去10の感じです。
sheet1には不定期に一定フォ-マットでの情報が入力されます。
sheet1に入力された最新の情報を過去1、過去2、過去3・・・・過去10の中から 日付+時間の一番古いシ-トを選択し、最新sheet1を貼り付けていくような マクロは組めるものなのでしょうか。 各シートともA1セルに「日付+時間」が入っています。
sheet1に入力(コピ-ペ-ストですが)するマクロは自動記録して重宝しています。 少し前の情報と比較する必要が発生したのですが、自動記録ぐらいしか知らず、どうして良いのか分からず困っています。 虫の良いお願いとは存じますが、アドバイスいただければ大変助かります。
Answer   2010.1.6 永井善王
『マクロの素人』さんということなので詳しく説明してあげるとよいのでしょうが、あまり時間が取れないので下記サンプルにコメントを付けておきました。
Sub 新しいシートをコピーして一番古い日時を持つシートに貼り付ける()
    一番古い日時 = 99999.99999                  '一旦最大値を代入しておく
    For Each s In Worksheets                    'ブック内の各シートを順に処理する
        If Left(s.Name, 2) = "過去" Then        'シート名の先頭2文字が"過去"なら
            日時 = Worksheets(s.Name).Range("A1").Value
                                                'A1セルの値を変数「日時」に代入する
            If 一番古い日時 > 日時 Then         '「一番古い日時」より「日時」の方が小さい
                一番古い日時 = 日時           '「日時」を「一番古い日時」として覚えておく
                シート名 = s.Name               'シート名を覚えておく
            End If
        End If
    Next
    Worksheets("Sheet1").Cells.Copy             'Sheet1の全てのセルをコピーする
    Worksheets(シート名).Range("A1").PasteSpecial Paste:=xlPasteAll
                                                '覚えておいたシートに全て貼り付ける
End Sub
上手くいくようになったらお知らせください。
ありがとうございました
アドバイスいただきました内容にて実行してみました。 う・動きました。目からウロコ状態です。
マクロに必要な文法を覚えることも大切ですが、どの様にして最初に古いシ-トを作製するアイデアなどとても勉強になりました。
記録して一杯になった場合は、これも自動記録ですが、そのシ-トの内容を全てクリア-するマクロを追加して本日から使用させて頂きます。
自動記録から少しでも脱却するべく読みときをして理解したいと思います。 有り難うございました。

 

Excel VBA Macro