| 
    
     |  | こんばんわ。 
 うーん・・・わからんなー
 ブックをオブジェクト変数に取り込んでみたらどうなんかな?
 前に提示したコードを変更してみると・・・
 
 Sub test3()
 Dim ArrayBooks As Variant
 Dim TargetBook As Workbook
 Dim i As Integer
 
 Application.ScreenUpdating = False
 ArrayBooks = Array("Book1", "Book2", "Book3")
 For i = LBound(ArrayBooks) To UBound(ArrayBooks)
 Set TargetBook = Workbooks.Open(ThisWorkbook.Path & "\" & ArrayBooks(i) & ".xls")
 TargetBook.SaveAs ThisWorkbook.Path & "\" & ArrayBooks(i) & "_new.xls"
 
 'ここで必要な処理を実行(↓例)
 TargetBook.Worksheets(1).Range("A1").Value = Now()
 
 TargetBook.Save
 TargetBook.Close
 Next
 Set TargetBook = Nothing
 Application.ScreenUpdating = True
 End Sub
 
 ところで・・・まずはSaveAs,Save,Close自体が怪しいのか
 途中の処理が怪しいのかをはっきりさせたほうがええと思います。
 
 途中の処理を全部コメントアウトして、単に「別名保存→保存→閉じる」だけの
 コードにして実験する。
 それでもうまいこといかんかったらSaveAs・・・が怪しいんやけど、恐らく
 途中の処理が原因なんやないかな?
 
 で、コメントアウトしてる処理を少しずつ非コメント化して順番に実行することで
 どこに問題があるんかを見つけ出す・・・ってことになるんとちゃいまっか?
 (On Error Goto はコメントアウトしておく)
 
 原因がわからんときのデバッグ作業ってのは大変やけど、地道にやることが
 結局一番早道やと思います。
 
 一般論ですんまへん。
 ほな。
 
 |  |