Excel2013にしたらVBAがすごく重くなった
会社のPCがExcel2010からExcel2013に変更されたのですが、Excel2010の環境で作成していたVBAマクロの処理がもの凄く遅くなってしまいました。
Excel2010では10秒ほど待てば終わった処理が30分以上かかるようになってしまい、業務効率を上げるために作ったVBAが逆に非効率になってしまい困っております。
(フリーズしたような感じになりますが、長時間までは処理は終わり、エラーは出ておりません)
Excel2013で重くなった箇所を調べていたら、下記コード部分の繰返し処理で重くなっているのが分かりました。
処理の概要は、「全体」シートの指定列の最終行のセルから指定された番号(12345)があるか1行ずつ調べていき、ヒットしたらその行を全体を切取り、「●●」シートの最終行に貼り付けていく単純なものです。
「全体」シート行数は8000~10000行あります。
・重くなっている処理の箇所
==================================
Application.ScreenUpdating = False
ActiveWorkbook.Worksheets("全体").Activate
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To LastRow
If Cells(i, 5).Value Like "12345" Then
Rows(i).Cut Sheets("●●").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End If
Next i
==================================
Excel2010で問題のなかった処理がExcel2013になって途端に重くなった原因自体も分かりませんが、問題点の回避方法や処理速度を改善する方法はありませんでしょうか。
よろしくお願いいたします。
お礼
さっそくの回答、ありがとうございました!!助かりました。