マクロの処理内容はシートを追加していき、シート名をつけていく
単純なものです。
EXCEL2002で以下のようなVBAマクロを組んだのですが実行時、
ループ56回目程度で『実行時エラー1004
worksheet クラスの COPYメソッドが失敗しました』のエラーが表示
されてしまいます。修正方法を教えて頂ければ幸いです。
なお、2回目実行時には数回のループ中でエラーになってしまいます。
Dim i As Integer
Dim newSheetNo As Integer
For i = 1 To 95
newSheetNo = i + 3
Sheets("シート1").Select
Sheets("シート1").Copy After:=Sheets(newSheetNo - 1)
※.この行でエラーになってしまいます!!
Sheets(newSheetNo).Cells(4, 2).Formula = Sheets("名簿").Cells(i + 3, 2).Formula '係名を名簿からコピー
Sheets(newSheetNo).Cells(4, 6).Formula = Sheets("名簿").Cells(i + 3, 6).Formula '職員コードを名簿からコピー
namae = Sheets("名簿").Cells(i + 3, 7).Formula '氏名を名簿からコピー
Sheets(newSheetNo).Cells(4, 10).Formula = namae
Sheets(newSheetNo).Name = namae
Next i
Hiスペックなマシンで実行しても同じでしょうか?
私も、メモリ不足の時に上記のエラーがでて大変でした。
メモリクリーナなどを入れると、大丈夫なときもあります。
結局回避できる時(セルコピー)と、できない問題があるため、
少しずつ、追っていく必要があります。
Excelが使用できるメモリ、使用中のメモリなど
Application.ScreenUpdating等をつかうのは言うに及ばずです。
また、上記は、起動直後(Auto_openで?)実行されるソースでしょうか?
ささ さん
ありがとうございます。やはりメモリー不足なんですかね〜
このソースについてはコマンドボタン押下時に実行される
ようにしています。
具体的にメモリ開放のコマンド等はあるのでしょうか?
または実行前に何かできる対策はあるのでしょうか?
なにぶんLOWスペックなマシンしかないもので・・・(笑)
また、お時間あれば教えて下さいまし・・・
自分が前に検証したことは、
Application.MemoryTotal
Application.MemoryFree
Application.MemoryUsed
などで、調べても原因がわかりませんでした。