|
こんにちわ。
>「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
ま、なんにしても作業の前にはデータのバックアップってのが基本ですわなー
ほな。
|
|