Google Apps Script (GAS) を用いてスプレッドシートを操作する際、clear()メソッドは非常に強力な機能です。このメソッドを使いこなすことで、データの初期化や書式設定の管理が劇的に効率化されます。本記事では、clear()メソッドの基本的な使い方から、実務で役立つ応用例までを初心者にも分かりやすく解説します。

clear()メソッドの基本
clear()とは?
clear()メソッドは、スプレッドシートの指定した範囲に含まれる値と書式の両方を完全に削除する機能を提供します。これにより、セル範囲を初期状態に戻すことができます。
function clearRange() {
const sheet = SpreadsheetApp.getActiveSheet();
// A1:B2の範囲の値と書式をすべてクリア
sheet.getRange("A1:B2").clear();
}
このコードを実行すると、A1:B2の範囲がクリアされます。clear()メソッドは、クリアした範囲のRangeオブジェクトを返すため、メソッドチェーンを利用した連続操作も可能です。
clearContent(), clearFormat()との違い
clear()と似たメソッドにclearContent()とclearFormat()があります。これらは削除対象が異なるため、用途に応じて使い分けることが重要です。
clearContent(): セルの値のみを削除します。書式(背景色やフォントスタイルなど)は保持されます。clearFormat(): セルの書式のみを削除します。値はそのまま残ります。
| メソッド | 削除対象 | 使用例 |
|---|---|---|
clear() | 値と書式 | 範囲を完全に初期化したい場合 |
clearContent() | 値のみ | データを消去し、書式テンプレートは残したい場合 |
clearFormat() | 書式のみ | 入力されたデータはそのままに、スタイルをリセットしたい場合 |
実用的なコード例
実際にclear()メソッドを使用して、さまざまな範囲をクリアするサンプルコードを見ていきましょう。
function clearExamples() {
const sheet = SpreadsheetApp.getActiveSheet();
// 1. 単一セル(A1)をクリア
sheet.getRange("A1").clear();
// 2. 連続した範囲(B2:D5)をクリア
sheet.getRange("B2:D5").clear();
// 3. 複数の非連続範囲(F列, H列, J列)をクリア
const rangesToClear = ["F1:F10", "H1:H10", "J1:J10"];
rangesToClear.forEach(rangeString => {
sheet.getRange(rangeString).clear();
});
}
条件に基づいてセルをクリアする方法
特定の条件に一致するセルだけをクリアすることも可能です。例えば、シート内で数値が50以上のセルのみをクリアする場合は、以下のように記述します。
function clearCellsBasedOnCondition() {
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getDataRange();
const values = range.getValues();
for (let i = 0; i < values.length; i++) {
for (let j = 0; j < values[i].length; j++) {
// セルの値が数値型かつ50以上の場合
if (typeof values[i][j] === 'number' && values[i][j] >= 50) {
// getRangeの行・列は1から始まるため+1する
sheet.getRange(i + 1, j + 1).clear();
}
}
}
}
このスクリプトは、シート全体のデータをループ処理し、条件に合致するセルを個別にクリアします。
実務での応用例
テンプレートの書式をリセット
月次報告書など、定期的に更新するテンプレートでclearFormat()は特に役立ちます。データを保持したまま、書式だけをリセットできます。
function resetTemplateFormat() {
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getDataRange();
// 1. 既存の書式をすべてクリア
range.clearFormat();
// 2. 新しい書式を統一して設定
range.setBackground("#f0f0f0")
.setFontFamily("Arial")
.setFontSize(10);
}
パフォーマンスの最適化
大量のセルを操作する場合、clear()の実行時間に配慮が必要です。一度に広範囲をクリアする方が、個別に何度もclear()を呼び出すよりも効率的です。
例えば、複数の範囲をクリアする場合、getRangeList()を使用してまとめて処理することで、API呼び出し回数を減らし、パフォーマンスを向上させることができます。
function efficientClear() {
const sheet = SpreadsheetApp.getActiveSheet();
const rangeList = ["A1:B10", "D1:E10"];
// 複数の範囲をまとめてクリア
sheet.getRangeList(rangeList).clear();
}
まとめ
clear()メソッドは、スプレッドシートのデータと書式を効率的に管理するための基本かつ重要な機能です。clearContent()やclearFormat()との違いを正しく理解し、状況に応じて使い分けることで、GASによる自動化処理の幅が大きく広がります。本記事で紹介したテクニックを活用し、日々の業務を効率化させましょう。


GASを使用してシートの値を削除するには、clear()メソッドを使用します。 セルの値を削除するclear()についての記事もありますのでぜひ! function clear() { // 現在アクティブなスプレッドシートのシートを取得する var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 1つのセルの値だけを削除する sheet.getRange("A1").clear(); // 複数セルの値を削除する sheet.getRange("A1:C


GAS(Google Apps Script)でデータの削除や属性のみの削除ができるようになります。

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