| 
    
     |  | 新田 哲二 さん、こんにちわ。 
 >Excel2003で動かしている処理において例外エラーは発生するため、問題の所在を確認するためにその処理ロジックだけを抜き出して(以下)動作させましたところ、Excel2003では約5000回、Excel2007では10,700近辺で例外が発生します。一回も完了を経験していません。使用しているPCのいずれにおいてもほぼ同じポイントで発生します
 >何かシステムリソースを消費しているのか、制限事項があるのか分かりません。どなたか、回避方法をご存知に方がありましたら教えていただきたいのですが。
 
 ちょっと加工して、こういうマクロでテスト(ステータスバーにログを表示)しました。環境はWinXP & XL2003SP3です。
 
 Sub Sheet_Add_Del_Loop()
 Dim Count As Integer, ws As Worksheet
 Dim シート名 As String
 Count = 1
 
 With Application
 .DisplayAlerts = False
 .ScreenUpdating = False
 Do While Count <= 12000
 On Error GoTo エラー処理
 With .ActiveWorkbook
 Set ws = .Worksheets.Add(after:=.Worksheets(.Worksheets.Count)) 'シートを最後のシートの後へ挿入
 End With
 s1 = Count & " " & ws.Cells(Count).Address(0, 0, external:=True)
 .StatusBar = s1
 ws.Delete
 Set ws = Nothing
 ' +1
 Count = Count + 1
 Loop
 .DisplayAlerts = True
 .ScreenUpdating = True
 .StatusBar = False
 End With
 MsgBox s1, vbInformation, "完了"
 Exit Sub
 '
 エラー処理:
 MsgBox "Err" & Count, vbCritical, Error(Err)
 On Error GoTo 0
 Application.DisplayAlerts = True
 Application.ScreenUpdating = True
 Application.StatusBar = False
 MsgBox s1, vbExclamation, "中断"
 End Sub
 
 以下、実験結果。
 VBEを起動して、
 VBEから直接実行 × 5850回前後で終了(エラー終了)
 VBEを後ろに隠してワークシートメニューバーのツール→マクロ × 上と同様
 
 VBEを起動せずに、
 ワークシートメニューバーのツール→マクロ ○ 無事に完了
 シートにボタンを置いて、マクロを登録しクリックして実行 ○ 無事に完了
 ツールバーにコマンドボタンを配置しマクロを登録して実行 ○ 無事に完了
 
 というわけで上のマクロだと、VBEを起動せずに実行するとエラーになりませんでした。VBEを起動しているとステータスバーへのログの表示が遅くなる(3桁目が簡単に読めるようになる)のでここでかなり負荷がかかってる気がします。
 
 |  |