| 
    
     |  | こんにちわ。 
 >「A.xls をそのまま開いて」は、処理中にアプリケーションが落ちてファイルが
 >壊れることを想定して、元のファイルは綺麗に残したのですが・・・。
 >不要な心配なのでしょうか?
 
 A.xls を開いて、すぐに別名を付けて保存する。
 その後は必要な処理をして、最後に上書き保存する。
 ・・・ってのをループにすれば A.xls を壊す心配もほとんど無いんとちゃいまっか?
 マクロが書いてある制御用のブックと同じフォルダに入ってる Book1.xls〜Book3.xls
 を順番に開いて Book1_new.xls〜Book3_new.xls として保存してから処理をするって
 コードを書いてみました。
 既に同名のファイルが存在する場合のチェックは省略してます。
 
 Sub test2()
 Dim ArrayBooks As Variant
 Dim i As Integer
 
 Application.ScreenUpdating = False
 ArrayBooks = Array("Book1", "Book2", "Book3")
 For i = LBound(ArrayBooks) To UBound(ArrayBooks)
 With Workbooks.Open(ThisWorkbook.Path & "\" & ArrayBooks(i) & ".xls")
 .SaveAs ThisWorkbook.Path & "\" & ArrayBooks(i) & "_new.xls"
 
 'ここで必要な処理を実行(↓例)
 .Worksheets(1).Range("A1").Value = Now()
 
 .Save
 .Close
 End With
 Next
 Application.ScreenUpdating = True
 End Sub
 
 ループ内の処理のスピードアップについては、↓これが参考になるかも・・・
 http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=8037;id=excel
 
 ま、なんにしても作業の前にはデータのバックアップってのが基本ですわなー
 ほな。
 
 
 |  |