|
あやたろう さん、おはようございます。
>以前はver.2000 を使っていたのですが、新ver(ver.2007?)を使うことになり、
>10000行程度の行のうち、
>該当しない行を非表示にしようとしていますが、
>かなりスピードが遅いのです。(>_<)
たとえばこんな感じです。
ひとつずつ消す
Sub test()
Application.ScreenUpdating = False
ActiveSheet.DisplayPageBreaks = False '表示が改ページプレビューなら失敗します。
'
For i = 3 To 10000
If Trim(Cells(i, "a").Value) <> strSTRING Then
Rows(i).Hidden = True
End If
Next
Application.ScreenUpdating = True
ActiveSheet.DisplayPageBreaks = True
End Sub
スクリーンの再描画と、不要なSelectをはずすと処理は速くなります。
あとは、
まとめて消す
計算をとめる(手動で再計算モード)
などでしょうかね。
まとめてから消す。
Sub test()
Dim r1 As Range
Application.ScreenUpdating = False
ActiveSheet.DisplayPageBreaks = False '表示が改ページプレビューなら失敗します。
'
For i = 3 To 10000
If Trim(Cells(i, "a").Value) <> strSTRING Then
If r1 Is Nothing Then
Set r1 = Cells(i, "a")
Else
Set r1 = Application.Union(r1, Cells(i, "a"))
End If
End If
Next
If Not r1 Is Nothing Then r1.EntireRow.Hidden = True
Application.ScreenUpdating = True
ActiveSheet.DisplayPageBreaks = True
End Sub
何も入っていない行3〜10000を消した感じだと、上の半分くらいの時間でした。
|
|