GASでスプレッドシートの指定範囲からフィルター設定を取得・操作する方法

Google Apps Script(GAS)のgetFilter()メソッド、使いこなせてるかい? スプレッドシートのフィルタ機能を自動化できる便利なメソッドばってん、意外と知らん人も多かばい。 今回は、その基本から応用テクニックまでしっかり解説するばい!

スポンサーリンク

getFilter()とは?

まず、getFilter()メソッドは何をするものか? 簡単に言うと「指定した範囲のフィルタオブジェクトを取得する」ためのメソッドばい。

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange("A1:D100");
const filter = range.getFilter();

if (filter) {
  console.log("フィルタが適用されてるばい!");
} else {
  console.log("フィルタはまだ無かばい!");
}

これを使えば、スプレッドシートのフィルタ状態を確認できるとさ。

フィルタの基本ルール

フィルタ機能にはいくつかルールがあるばい。

  • シートごとに1つのフィルタしか設定できん
  • フィルタ範囲は連続したセル範囲であること
  • フィルタを使えば、特定の条件に合うデータだけを表示できる

この基本を押さえておくと、スクリプトを組むときに迷わんじゃろ。

getFilter()の実践的な活用

1. 既存のフィルタをチェックする

function checkExistingFilter() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const range = sheet.getRange("A1:D100");
  const existingFilter = range.getFilter();

  if (existingFilter) {
    console.log(`既存フィルタ範囲: ${existingFilter.getRange().getA1Notation()}`);
  } else {
    console.log('フィルタは存在しません');
  }
}

2. フィルタを削除して再設定する

function refreshFilter() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const dataRange = sheet.getDataRange();
  
  // 既存フィルタを削除
  const oldFilter = dataRange.getFilter();
  if (oldFilter) oldFilter.remove();

  // 新規フィルタ作成
  const newFilter = dataRange.createFilter();
}

3. フィルタ条件を動的に適用する

function applyDynamicFilters() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const filter = sheet.getFilter() || sheet.getRange("A1:D").createFilter();

  const criteria = SpreadsheetApp.newFilterCriteria()
    .whenTextContains("重要")
    .build();

  filter.setColumnFilterCriteria(1, criteria);
}

まとめ

Google Apps ScriptのgetFilter()を活用すれば、スプレッドシートのデータ管理がぐっと楽になるばい!

  • 既存のフィルタを確認できる
  • 不要なフィルタを削除して、新しく作成できる
  • 条件付きフィルタを適用して、データを自動整理できる

こん方法ばマスターすれば、スプレッドシートの業務効率も爆上がり間違いなしじゃ!

コメント

タイトルとURLをコピーしました