1. ホーム
  2. /
  3. [GAS]
  4. /
  5. GASのclear(options)でスプレッドシートの値や書式を選択的に削除する方法

GASのclear(options)でスプレッドシートの値や書式を選択的に削除する方法

GASのclear(options)でスプレッドシートの値や書式を選択的に削除する方法

Google Apps Script (GAS) はスプレッドシートの操作を自動化する強力なツールです。中でも clear(options) メソッドは、指定した範囲のデータや書式を柔軟に削除できるため、非常に便利です。しかし、オプションが多岐にわたるため、使いこなすのが難しいと感じる方もいるかもしれません。

この記事では、clear(options) メソッドの基本的な使い方から、具体的な活用例、パフォーマンスを意識した高度なテクニックまで、分かりやすく解説します。

Google Apps Script 始め方 スプレッドシート 活用例
Google Apps Script 始め方 スプレッドシート 活用例 を各ショップで検索

clear(options) メソッドの基本的な使い方

clear(options) メソッドは、Range オブジェクトに対して使用し、オプションを指定することで削除する対象を細かく制御できます。

基本的な構文は以下の通りです。

// 例: 指定した範囲の値と書式のみを削除
range.clear({
  contentsOnly: true,   // 値と数式を削除
  formatOnly: true      // 書式を削除
});

このように、引数にオブジェクトを渡すことで、複数のオプションを組み合わせて使用できます。

オプションの詳細

clear(options) で指定できる主なオプションは以下の通りです。

オプション影響範囲補足
contentsOnlyセルの値や数式これを指定すると、数式の結果がクリアされます。
formatOnlyフォント、背景色、罫線などの書式条件付き書式は削除されません。
commentsOnlyセルに紐づくコメントコメントが完全に削除されます。
validationsOnlyデータ検証規則ドロップダウンリストなどが解除されます。
skipFilteredRowsフィルタで非表示になっている行true にすると非表示行を処理から除外します。

例えば、値とコメントのみを削除したい場合は、次のように記述します。

range.clear({
  contentsOnly: true, 
  commentsOnly: true
});

この柔軟性が clear(options) メソッドの大きな特徴です。

実践的な活用例

次に、具体的なシナリオに基づいた clear(options) の使用例を紹介します。

1. 入力フォームのリセット

ユーザーが入力したデータをクリアし、フォームを初期状態に戻す際に便利です。データ検証(ドロップダウンリストなど)は維持したまま、入力値のみを削除します。

function resetForm() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('入力フォーム');
  const inputRange = sheet.getRange('B2:F10');
  
  // 値のみをクリアし、データ検証は残す
  inputRange.clear({ contentsOnly: true });
}

validationsOnlyオプションを省略(またはfalseに設定)することで、データ検証は維持されます。

2. レポートテンプレートの初期化

月次レポートなど、定型的なフォーマットの書式のみを初期化し、データは保持したい場合に活用できます。

function initializeTemplate() {
  const templateSheet = SpreadsheetApp.getActive().getSheetByName('月次レポート');
  const formatArea = templateSheet.getRange('A1:M50');
  
  // 書式のみをクリア
  formatArea.clear({
    formatOnly: true,
    skipFilteredRows: true // フィルタで非表示の集計行などはスキップ
  });
}

パフォーマンスを最適化するヒント

clear メソッドは便利ですが、大規模なデータを扱う際はパフォーマンスに注意が必要です。以下のポイントを意識することで、処理速度を向上させることができます。

  • バッチ処理: clear() を何度も呼び出すのではなく、getRangeList() などで複数の範囲をまとめて取得し、一度に処理する方が効率的です。
  • 不要なオプションの除外: 必要なオプションのみを指定し、不要な評価を避けることで処理を軽量化します。
  • スクリプトプロパティの活用: PropertiesService を使って設定を外部管理することで、コードを変更せずに動的にオプションを切り替えることができ、保守性が向上します。

セキュリティとログ記録

データの削除は重要な操作であるため、誰がいつどのような操作を行ったかを記録しておくことが推奨されます。以下は、操作ログを残す関数の例です。

function loggedClear(range, options) {
  const auditSheet = SpreadsheetApp.getActive().getSheetByName('監査ログ');
  
  // ログに行を追加
  auditSheet.appendRow([
    new Date(),
    Session.getActiveUser().getEmail(),
    range.getA1Notation(),
    JSON.stringify(options)
  ]);
  
  // クリア処理を実行
  range.clear(options);
}

このようにログを残すことで、意図しないデータ削除が発生した際の原因追跡が容易になります。

まとめ

clear(options) メソッドは、スプレッドシートのデータや書式をきめ細かく制御できる、GASの非常に強力な機能です。

本記事で紹介した基本的な使い方から応用例までを参考に、ぜひあなたの業務自動化に役立ててください。まずは簡単なスクリプトから試してみて、その便利さを実感することをおすすめします。

Google Apps Script 始め方 スプレッドシート 活用例
Google Apps Script 始め方 スプレッドシート 活用例 を各ショップで検索
Google Apps Script (GAS) シートの値を削除する方法 | くじらいど

GASを使用してシートの値を削除するには、clear()メソッドを使用します。 シートに値を入力するsetValue()についての記事もありますのでぜひ! function clear() { // 現在アクティブなスプレッドシートのシート

Class Range | Apps Script | Google for Developers

オプションを指定してセル範囲にある全ての値と書式をクリアする:clear(options)【GAS】 | G Suite ガイド - G Suite ガイド:G Suite の導入方法や使い方を徹底解説!

clear(options) オプションを指定してセル範囲にある全ての値と書式をクリアする。 サンプルコード // 現在アクティブなシートにある指定のセル範囲のデータを値だけ全て削除 SpreadsheetApp.getActiveSheet().getRange(2, 3, 6, 4).clear({contentsOnly: true}); // 現在アクティブなシートにある指定のセル範囲のデータを値だけ全て削除 SpreadsheetApp.getActiveSheet().getRange(2, 3, 6, 4).clear({contentsOnly: true}); 引数 名前 型 説明 options オブジェクト型 オプション(以下の表) オプション 名前 型 説明 commentsOnly ブーリアン型 コメントのみ削除するか否か contentsOnly ブーリアン型 値のみ削除するか否か formatOnly ブーリアン型 数式のみ削除するか否か validationsOnly ブーリアン型 データの入力規則のみ削除するか否か 戻り値 Range オブジェクト – そのセル範囲自身 この記事が気に入ったら いいねしよう! 最新記事をお届けします。

関連記事

GASでフィルターを自動操作!getFilter()でデータ絞り込みを効率化する方法

GASでフィルターを自動操作!getFilter()でデータ絞り込みを効率化する方法

スプレッドシートで大量のデータを扱う際、「特定の条件で絞り込んで表示する」フィルター機能は欠かせません。しかし、毎日同じ条件でフィルターをかけ直したり、データが追加されるたびに範囲を再設定したりするのは、地味に面倒な作業です。

Google Apps Script (GAS) の getFilter() メソッドを使えば、こうしたフィルター操作を完全に自動化できます。

この記事では、getFilter() の基本から、既存フィルターの更新や、スクリプト実行時に特定の条件で自動的にデータを絞り込む応用テクニックまで、分かりやすく解説します。

GASでシートに隠し情報を埋め込む!getDeveloperMetadata活用術

GASでシートに隠し情報を埋め込む!getDeveloperMetadata活用術

Google Apps Script (GAS) でスプレッドシートを操作する際、「スクリプト用の設定値をどこに保存しよう?」「この行に対応するデータベースのIDをどこかに持っておきたい」と悩んだことはありませんか? セルに直接書き込むとユーザーに見えてしまうし、間違って消されるリスクもあります。

そんな時に役立つのが「開発者メタデータ (Developer Metadata)」です。

これは、スプレッドシートの裏側に、スクリプト専用の「隠し情報」を安全に埋め込むための機能です。この記事では、getDeveloperMetadata() メソッドを中心に、メタデータの基本からセキュリティ、パフォーマンスまでを徹底解説します。