|
こんばんわ。
うーん・・・わからんなー
ブックをオブジェクト変数に取り込んでみたらどうなんかな?
前に提示したコードを変更してみると・・・
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 はコメントアウトしておく)
原因がわからんときのデバッグ作業ってのは大変やけど、地道にやることが
結局一番早道やと思います。
一般論ですんまへん。
ほな。
|
|