- 締切済み
オートフィルタの表示、非表示について
エクセルのオートフィルタを利用すると、常時矢印がセルの右上に 表示されますが、この矢印をアクティブでない場合、 非表示にし、アクティブになったセルだけ表示させる 方法をご存知のかたいらっしゃいませんか? VBAでできるのでしょうか。 それとも普通にオートフィルタを設定して簡単に できるものなのでしょうか。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- masa_019
- ベストアンサー率61% (121/197)
こんにちは。 通常の操作では無理っぽいので、VBAになります。 オートフィルタの矢印はShapeの一種なので、 VisibleプロパティのTrue/Falseを切り替えることで、 表示したり、非表示にしたりできます。 仮にA2:F2にオートフィルタの矢印が出るとして、 対象のシートモジュールに以下のコードを貼り付けます。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim s As Shape Dim rng As Range Dim r As Range Set rng = Me.Range("A2:F2") 'If Intersect(Target, rng) Is Nothing Then Exit Sub For Each s In ActiveSheet.Shapes s.Visible = False Next For Each s In ActiveSheet.Shapes If Target.Left = s.Left And Target.Top = s.Top Then s.Visible = True End If Next End Sub セルが選択されたら、いったんすべての矢印を非表示にし、 アクティブなセルの矢印だけ再表示します。 'If Intersect~ の行のコメントをはずすと、若干動作が変わりますが、どちらでも動きます。
アクティブで無いとき非表示にできたとして、 再度アクティブにする方法はどのようにお考えですか?