次の方法で共有


ListObject.AutoFilter プロパティ

フィルター処理されたテーブルを取得します。

名前空間:  Microsoft.Office.Tools.Excel
アセンブリ:  Microsoft.Office.Tools.Excel (Microsoft.Office.Tools.Excel.dll 内)

構文

'宣言
ReadOnly Property AutoFilter As AutoFilter
    Get
AutoFilter AutoFilter { get; }

プロパティ値

型: Microsoft.Office.Interop.Excel.AutoFilter
フィルター処理されたテーブルが格納された AutoFilter を返します。

次のコード例では、ワークシートに ListObject を追加します。これは、Excel のテーブルに対応します。 次に、2 行の任意のデータをテーブルに設定し、最初の列の値が文字列値 "bb" に等しくない行をすべて除外するフィルターをテーブルに指定します。 そして、テーブルで見つかったアクティブなフィルターの数を表示します。

この例は、ドキュメント レベルのカスタマイズ用に作成されています。

Private Sub FilterListObject()
    ' Create ListObject control (table) and set table style
    Dim employeeTable As Microsoft.Office.Tools.Excel.ListObject = _
        Me.Controls.AddListObject(Me.Range("A1"), "employeeTable")

    ' Populate table with some data
    Dim rng As Excel.Range
    rng = employeeTable.InsertRowRange
    rng(ColumnIndex:=1).Value2 = "bb"
    rng(ColumnIndex:=2).Value2 = "b1"
    Dim row2 As Excel.ListRow = employeeTable.ListRows.AddEx( _
        AlwaysInsert:=True)
    rng = row2.Range
    rng(ColumnIndex:=1).Value2 = "aa"
    rng(ColumnIndex:=2).Value2 = "a1"

    ' Set a filter        
    employeeTable.Range.AutoFilter(1, "bb")        
    Dim activeFilterCount As Integer = 0
    For Each filter As Excel.Filter In employeeTable.AutoFilter.Filters
        If filter.On = True Then
            activeFilterCount += 1
        End If
    Next
    MessageBox.Show("There are " + activeFilterCount.ToString() _
        + " active filter(s) for table " + employeeTable.Name + ".")

End Sub
private void FilterListObject()
{
    // Create ListObject control (table) and set table style
    Microsoft.Office.Tools.Excel.ListObject employeeTable =
        this.Controls.AddListObject(this.Range["A1",missing], 
        "employeeTable");

    // Populate table with some data
    Excel.Range rng;
    rng = employeeTable.InsertRowRange;
    ((Excel.Range)(rng[missing, 1])).Value2 = "bb";            
    ((Excel.Range)(rng[missing,2])).Value2 = "b1";
    Excel.ListRow row2 = employeeTable.ListRows.AddEx(missing,true);
    rng = row2.Range;
    ((Excel.Range)(rng[missing,1])).Value2 = "aa";
    ((Excel.Range)(rng[missing,2])).Value2 = "a1";

    // Set a filter        
    employeeTable.Range.AutoFilter(1, "bb", 
        Excel.XlAutoFilterOperator.xlFilterValues,missing,missing);        
    int activeFilterCount = 0;
    foreach (Excel.Filter filter in employeeTable.AutoFilter.Filters)
    {
        if (filter.On == true)
        {
            activeFilterCount += 1;
        }
    }
    MessageBox.Show("There are " + activeFilterCount.ToString()
        + " active filter(s) for table " + employeeTable.Name + ".");

}

.NET Framework セキュリティ

  • 直前の呼び出し元に対する完全な信頼。 このメンバーは、部分的に信頼されているコードから使用することはできません。 詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

参照

ListObject インターフェイス

Microsoft.Office.Tools.Excel 名前空間