Shishonaは、すべてのブックを開いたときにExcelでフィルターを有効/設定する方法があるかどうか疑問に思います。彼女はほとんどの場合、ワークシートにフィルターを使用しており、フィルターを使用しないワークブックにフィルターをオンにしても害はないと考えています。次に、ワークブックを開くたびにフィルターを有効にするのではなく、フィルターを既にオンにしておきます。

ご想像のとおり、その答えは「デフォルト」の意味によって異なります。ワークシートにデータが含まれていない場合(フィルターするものがないため)、Excelではフィルターをオンにできないため、「デフォルト」は新しい空白のブックを意味することはできません。

フィルタはデータを含むワークシートでのみ有効にできるため、データを含み、フィルタがオンになっている「デフォルトのワークブック」を作成することができます。次に、そのワークブックをシステムの特別な場所に保存して、作成する新しいワークブックのデフォルトテンプレートとして使用できるようにします。 (これを行う方法は、_ExcelTips_の他の問題で説明されています。)

もちろん、新しいブックを作成した後にデフォルトのフィルター処理されたデータを削除する必要があるため、このアプローチを採用することは、価値があるよりも厄介な場合があります。つまり、フィルター処理はとにかく削除されます。したがって、デフォルトのワークブックアプローチを台無しにしないことが最善です。

代わりに、既存のブックを開いたときに、フィルタリングを自動的に有効にすることを意味する場合があります。 Excelでこれを自動的に行う方法はありませんが、必要ない場合があります。その理由は、ブックを保存するときに、Excelはどのデータにフィルターが適用されているかを記憶しているためです。したがって、ワークシートを作成してフィルタリングをオンにしてからブックを保存すると、次にワークシートを開いたときに、そのデータのフィルターがオンのままになります。

ワークシートのデータが正式なデータテーブルとして定義されていることを確認することもできます。データ内のセルを選択してCtrl + Tを押すか、リボンの[挿入]タブを表示して[テーブル]ツールをクリックするだけです。データテーブルが設定されると、Excelは、データテーブルから通常のデータに変換し直さない限り、そのデータテーブルのフィルターをオンのままにします。

ブックを保存するときにフィルターがオフになる(またはまったくオンにならない)ことが心配な場合は、マクロをミックスに追加してワークシートをステップ実行し、フィルターをオンにすることができます。次の例では、すでにフィルタリングがオンになっている可能性のあるワークシートを無視して、これを行います。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _   Cancel As Boolean)

Dim ws As Worksheet

On Error Resume Next ' Handles worksheets with no data     For Each ws In ThisWorkbook.Worksheets         If ws.AutoFilter Is Nothing Then             ' Only affect worksheets with filtering turned off             ws.Rows(ws.UsedRange.Row).AutoFilter         End If     Next ws     On Error GoTo 0 End Sub

このマクロは、Visual BasicEditorのThisWorkbookオブジェクトに追加する必要があります。ブックが閉じられるたびに実行されるため、すべてのワークシートでフィルタリングがオンになります。フィルタリング状態はブックとともに保存されるため、次にブックを開いたときにフィルターが適用されます。

もちろん、マクロを各ワークブックに関連付けたくない場合もあります。このような状況では、Ctrl + Shift + Lという簡単なキーボードショートカットを覚える方が簡単な場合があります。このショートカットは、現在選択されているセルの周囲のデータに対するフィルタリングの状態を切り替えます。したがって、セルを選択してCtrl + Shift + Lを押すと、フィルタリングがオンになります。もう一度押すと、フィルタリングがオフになります。ショートカットは非常に高速で、データを簡単にフィルタリングできます(またはフィルタリングできません)。

フィルタツールをクイックアクセスツールバーに追加することもできます。 (QATへのツールの追加については、_ExcelTips._の他の問題で説明されています。)[フィルター]アイコンをクリックして、フィルターのオンとオフを切り替えます。

注:

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

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

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

このヒント(13037)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。