エクセルVBA オートフィルタの選択を元に戻す
エクセルのVBAで、次のことはできるでしょうか。
ブックの中の3つのシートはオートフィルタが設定してあり、任意で操作し、検索に使っています。(オートフィルタを設定しないしーとが2つあります)
・別のシートにチェンジしたら、チェンジ前のシートがオートフィルタで特定の行だけを表示していたら、オートフィルタを <すべて> に戻して、消えていた行を全て表示させたいのです。(オートフィルタは次回にまた使うので、データ-フィルタ-オートフィルタでオートフィルタ自体を解除してしまうような状態にはしたくありません)
・同じく、上記のことをブックを閉じるときにも実行したいのです。
ちなみに、オートフィルタをかけてあるシートには、以下のコードがあります。
よろしくお願いします。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With Sheets("印刷")
.Range("E15:E17").Value = _
Application.Transpose(Cells(Target.Row, 7).Resize(, 3).Value)
.Range("AA16").Value = _
Cells(Target.Row, 10).Value
.Range("AQ16").Value = _
Cells(Target.Row, 11).Value
.Range("AX16").Value = _
Cells(Target.Row, 12).Value
End With
With Sheets("施設")
.Range("C2").Value = _
Cells(Target.Row, 10).Value
End With
Cancel = True
Sheets("施設").Select
End Sub
お礼
返事が遅れてしまい、申し訳ございません。 確かに見出しの表示形式が異なると、フィルターボタンの位置がおかしくなるようです。 ただし、今回のように表示形式を統一してもおかしくなることがあります。 queuerev2様のおっしゃるとおり、範囲を完全に指定して行う事がよいのですが、 VBAで抽出→抽出→表示というプログラムを組んでおり、困難です。 そこで、シートを削除、作成を何度か繰り返した所、正常にフィルターがかかるようになりました。 未だ原因はわかりません。 直接の解決にはなりませんでしたが、新たな事実に気付かさて頂いた事、感謝致します。 またもし、同様の症状の方がいらっしゃいましたら、ご参考頂ければ幸いです。