EXCEL2002で実行時エラー1004を回避するには?


のぶ  2004-03-13 07:37:11  No: 112342

マクロの処理内容はシートを追加していき、シート名をつけていく
単純なものです。

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


ささ  2004-03-13 19:04:51  No: 112343

Hiスペックなマシンで実行しても同じでしょうか?

私も、メモリ不足の時に上記のエラーがでて大変でした。
メモリクリーナなどを入れると、大丈夫なときもあります。

結局回避できる時(セルコピー)と、できない問題があるため、
少しずつ、追っていく必要があります。
Excelが使用できるメモリ、使用中のメモリなど
Application.ScreenUpdating等をつかうのは言うに及ばずです。

また、上記は、起動直後(Auto_openで?)実行されるソースでしょうか?


のぶ  2004-03-13 20:18:17  No: 112344

ささ  さん
ありがとうございます。やはりメモリー不足なんですかね〜
このソースについてはコマンドボタン押下時に実行される
ようにしています。

具体的にメモリ開放のコマンド等はあるのでしょうか?
または実行前に何かできる対策はあるのでしょうか?

なにぶんLOWスペックなマシンしかないもので・・・(笑)
また、お時間あれば教えて下さいまし・・・


ささ  2004-03-13 21:17:30  No: 112345

自分が前に検証したことは、
Application.MemoryTotal
Application.MemoryFree
Application.MemoryUsed

などで、調べても原因がわかりませんでした。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加