オートフィルタ使用時の注意

オートフィルタを繰り返し使用する処理を書く場合には以下の点に気をつけること。

  1. 該当シートにオートフィルタが設定されているかどうかを確認
    • 設定されている場合は一度解除する( object.AutoFilterMode = False )
  2. フィルタを設定
  3. (できれば)フィルタを解除して次の処理へ渡す

以下サンプルコード

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheet(1)

If ws.FilterMode Then
    ws.AutoFilterMode = False
End If

With ws.Rows(1)
    .AutoFilter
    <span style="font-style:italic;">...</span>
End With

<span style="font-style:italic;">...</span>

ws.AutoFilterMode = False
参照
http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200706/07060021.txt