ジムは、オートフィルターに適用されているフィルタリング基準をすばやく確認する方法を望んでいます。彼は、どの列にフィルターが適用されているかを判断するのに苦労しているため(ドロップダウン矢印の色が黒から青にわずかに変化することはほとんど目立たない)、フィルターが適用されている場所を判断する他の方法があれば便利です。

フィルタリングされた列の黒と青のドロップダウン矢印の間にコントラストがないことは、珍しい不満ではありません。実際、この問題は_ExcelTips_の別の問題で対処されました。 (この点に関する便利なヒントについては、ExcelTips Webサイトで「ドロップダウン矢印の色」というフレーズを検索できます。)

どの基準が列に適用されているかを実際に知りたい場合は、基準を別のセルに配置する小さなマクロに関心があります。

Function DispCriteria(Rng As Range) As String     Dim Filter As String

Filter = ""

On Error GoTo Done     With Rng.Parent.AutoFilter         If Intersect(Rng, .Range) Is Nothing Then GoTo Done         With .Filters(Rng.Column - .Range.Column + 1)

If Not .On Then GoTo Done             Filter = .Criteria1             Select Case .Operator                 Case xlAnd                     Filter = Filter & " AND " & .Criteria2                 Case xlOr                     Filter = Filter & " OR " & .Criteria2             End Select         End With     End With Done:

DispCriteria = Filter End Function

これは実際には、ワークシートで使用できるユーザー定義関数です。たとえば、列Cに適用されたフィルタリング基準を知りたい場合は、セルで次を使用できます。

=DispCriteria(C:C)

必要に応じて、フィルタリングする列のヘッダーセルを参照することもできます。たとえば、ヘッダー(AutoFilterがドロップダウン矢印を追加するヘッダー)がセルC3の場合、次を使用できます。

=DispCriteria(C3)

関数によって表示される基準は、オートフィルターによって実際に使用される基準です。たとえば、「トップ10」というフィルタリング基準を使用すると、Excelは、適用時にそれを “> = 214.3281932″のように変換します(値はデータによって異なります)。 DispCriteria関数によって返されるのは公式フィルターであり、「トップ10」の表現ではありません。

この関数は、Microsoft MVP StephenBullenによって作成されたものに基づいています。

マクロはさまざまな場所で公開されており、John WalkenbachのWebサイト(

)で見つけることができます。

http://www.j-walk.com/ss/excel/usertips/tip044.htm

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2891)は、Microsoft Excel 97、2000、2002、および2003に適用されます。