このクラスを使用すると、既存のフィルタの条件に関する情報を取得したり、条件をコピーしたりできます。
- 新しいフィルタを作成するには、以下をご覧ください。
- シートの場合は、
Range.createFilter()を使用します。 - ピボット テーブルの場合は、
PivotTable.addFilter(sourceDataColumn, filterCriteria)を使用します。 - データベースに接続されているシートの場合は、
DataSourceSheet.addFilter(columnName, filterCriteria)を使用します。 - データベースに接続されているピボット テーブルの場合は、
DataSourcePivotTable.addFilter(columnName, filterCriteria)を使用します。
- シートの場合は、
- 任意のタイプのフィルタの条件を作成するには、
SpreadsheetApp.newFilterCriteria()とFilterCriteriaBuilderをご覧ください。
一般的な使用例
条件をコピーする
次のサンプルでは、範囲A1:C20 に適用されるフィルタを取得し、C 列に適用される条件を取得して、その条件を B 列にコピーします。
const ss = SpreadsheetApp.getActiveSheet(); const range = ss.getRange('A1:C20'); // Copies the filter criteria applied to column C. const filter = range.getFilter(); const criteria = filter.getColumnFilterCriteria(3).copy().build(); // Applies the copied criteria to column B. The copied criteria overwrites any // existing criteria on column B. filter.setColumnFilterCriteria(2, criteria);
フィルタで非表示になっている値を取得する
次のサンプルでは、指定された範囲に適用されるフィルタを取得し、フィルタで非表示になっている B 列の値をログに記録します。const ss = SpreadsheetApp.getActiveSheet(); const range = ss.getRange('A1:C20'); const filter = range.getFilter(); // Gets the filter criteria applied to column B, then gets the hidden values. const filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues(); // Logs the hidden values. console.log(filterCriteria);
メソッド
| メソッド | 戻り値の型 | 概要 |
|---|---|---|
copy() | Filter | このフィルタ条件をコピーし、別のフィルタに適用できる条件ビルダーを作成します。 |
get | Boolean | 条件のブール値の型(CELL_EMPTY など)を返します。 |
get | Object[] | ブール値の条件の引数の配列を返します。 |
get | String[] | フィルタで非表示になっている値を返します。 |
get | Color|null | フィルタ条件として使用される背景色を返します。 |
get | Color|null | フィルタ条件として使用される前景色を返します。 |
get | String[] | ピボット テーブルのフィルタに表示される値を返します。 |
詳細なドキュメント
copy()
このフィルタ条件をコピーし、別のフィルタに適用できる条件ビルダーを作成します。
このメソッドは、任意のタイプのフィルタで使用できます。シートフィルタを使用している場合は、条件を別の列にコピーできます。
const ss = SpreadsheetApp.getActiveSheet(); const filter = ss.getFilter(); // Makes a copy of the filter criteria applied to column C. const criteria = filter.getColumnFilterCriteria(3).copy().build(); // Applies the copied criteria to column B. The copied criteria overwrites any // existing criteria on column B. filter.setColumnFilterCriteria(2, criteria);
戻る
FilterCriteriaBuilder - このフィルタ条件に基づくフィルタ条件ビルダー。
getCriteriaType()
条件のブール値の型(CELL_EMPTY など)を返します。ブール値の条件のタイプについては、BooleanCriteria 列挙型をご覧ください。
このメソッドは、既存の条件を置き換えることなく、ブール値の条件の条件をフィルタに追加する場合によく使用されます。
- 条件の引数を取得するには、
getCriteriaValues()を使用します。 - 条件のタイプと条件の値を使用してフィルタ条件を作成または変更するには、
FilterCriteriaBuilder.withCriteria(criteria, args). をご覧ください。
このメソッドは、任意のタイプのフィルタで使用できます。フィルタ条件がブール値の条件でない場合は、null を返します。
const ss = SpreadsheetApp.getActiveSheet(); // Gets the filter on the active sheet. const filter = ss.getFilter(); // Gets the criteria type and returns a string representing the criteria type // object. const criteriaType = filter.getColumnFilterCriteria(2).getCriteriaType().toString(); // Logs the criteria type. console.log(criteriaType);
戻る
BooleanCriteria|null - ブール値の条件のタイプ。条件がブール値の条件でない場合は null。
getCriteriaValues()
ブール値の条件の引数の配列を返します。ブール値の条件のタイプによっては、引数がなく、空の配列(CELL_NOT_EMPTY など)を返すものもあります。
このメソッドは、既存の条件を置き換えることなく、ブール値の条件の条件をフィルタに追加する場合によく使用されます。
- ブール値の条件のタイプを取得するには、
getCriteriaType()を使用します。 - 条件のタイプと条件の値を使用してフィルタ条件を作成または変更するには、
FilterCriteriaBuilder.withCriteria(criteria, args). をご覧ください。このメソッドは、任意のタイプのフィルタで使用できます。
const ss = SpreadsheetApp.getActiveSheet(); const filter = ss.getFilter(); // Gets the values of the boolean criteria and logs them. For example, if the // boolean condition is whenNumberGreaterThan(10), then the logged value is 10. const criteriaValues = filter.getColumnFilterCriteria(2).getCriteriaValues(); console.log(criteriaValues);
戻る
Object[]- ブール値の条件のタイプに適した引数の配列。引数の数 とその型は、対応するwhen...()メソッドのFilterCriteriaBuilderクラスと一致します。
getHiddenValues()
フィルタで非表示になっている値を返します。
この条件は、シートのデフォルト タイプである Grid シートのフィルタで使用します。
他のタイプのフィルタに対してこのメソッドを呼び出すと、null が返されます。
const ss = SpreadsheetApp.getActiveSheet(); const range = ss.getRange('A1:C20'); const filter = range.getFilter(); // Gets the filter criteria applied to column B, then gets the hidden values. const filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues(); // Logs the hidden values. console.log(filterCriteria);
戻る
String[] - フィルタで非表示になっている値の配列。
getVisibleBackgroundColor()
フィルタ条件として使用される背景色を返します。この背景色のセルは表示されたままになります。
この条件は、シートのデフォルト タイプである Grid シートのフィルタで使用します。
他のタイプのフィルタに対してこのメソッドを呼び出すと、null が返されます。
const ss = SpreadsheetApp.getActiveSheet(); const range = ss.getRange('A1:C20'); // Logs the background color that column B is filtered by as a hexadecimal // string. const filter = range.getFilter(); const color = filter.getColumnFilterCriteria(2) .getVisibleBackgroundColor() .asRgbColor() .asHexString(); console.log(color);
戻る
Color|null - フィルタ条件として使用される背景色。
getVisibleForegroundColor()
フィルタ条件として使用される前景色を返します。この前景色のセルは表示されたままになります。
この条件は、シートのデフォルト タイプである Grid シートのフィルタで使用します。
他のタイプのフィルタに対してこのメソッドを呼び出すと、null が返されます。
const ss = SpreadsheetApp.getActiveSheet(); const range = ss.getRange('A1:C20'); // Logs the foreground color that column B is filtered by as a hexadecimal // string. const filter = range.getFilter(); const color = filter.getColumnFilterCriteria(2) .getVisibleForegroundColor() .asRgbColor() .asHexString(); console.log(color);
戻る
Color|null - フィルタ条件として使用される前景色。
getVisibleValues()
ピボット テーブルのフィルタに表示される値を返します。
この条件は、データベースに接続されていないピボット テーブルのフィルタにのみ適用されます。 他のタイプのフィルタの場合は、空の配列が返されます。
const ss = SpreadsheetApp.getActiveSheet(); // Gets the first pivot table on the sheet, then gets the visible values of its // first filter. const pivotTable = ss.getPivotTables()[0]; const pivotFilterValues = pivotTable.getFilters()[0].getFilterCriteria().getVisibleValues(); // Logs the visible values. console.log(pivotFilterValues);
戻る
String[] - ピボット テーブルのフィルタに表示される値の配列。