プロが教える店舗&オフィスのセキュリティ対策術

エクセルのオートフィルタを利用すると、常時矢印がセルの右上に
表示されますが、この矢印をアクティブでない場合、
非表示にし、アクティブになったセルだけ表示させる
方法をご存知のかたいらっしゃいませんか?

VBAでできるのでしょうか。
それとも普通にオートフィルタを設定して簡単に
できるものなのでしょうか。

A 回答 (2件)

こんにちは。



通常の操作では無理っぽいので、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~ の行のコメントをはずすと、若干動作が変わりますが、どちらでも動きます。
    • good
    • 0

アクティブで無いとき非表示にできたとして、


再度アクティブにする方法はどのようにお考えですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!