見出し画像

全てのシートの特定の文字列を含む名前付き範囲の値を削除する関数

ノンプロ研でGAS勉強中です。

今日はさらっと、作った関数の備忘録メモその2。

今回はやや取り扱い注意の「全てのシートの特定の文字列を含む名前付き範囲の値を削除する関数」です。

/**
* 全てのシートの特定の文字列を含む名前付き範囲の値を削除する関数
* 
* @param   {spreadsheet}   ssTgt   対象とするスプレッドシート
* @param   {string}        keyword 削除したい名前付き範囲の判定キーワード
*/

function clearSpecNamedRange_(ssTgt, keyword) {
 const namedRanges = ssTgt.getNamedRanges();
 for (const namedRange of namedRanges) {
   const name = namedRange.getName();
   if (name.includes(keyword)) {
     namedRange.getRange().clearContent();
   };
 }
}

例えば

const ss = SpreadsheetApp.getActiveSpreadsheet();
const keyword = 'DELETE';
clearSpecNamedRange_(ss, keyword);

とすると、名前付き範囲の名前にDELETEが含まれる範囲だけ値を削除します。

このコードが取り扱い注意な理由は、消してしまった名前付き範囲の値は、スプレッドシートの「編集>元に戻す」でも戻らないからです。

うっかりとんでもな名前付き範囲を削除しないように注意しないとです。


この記事が気に入ったらサポートをしてみませんか?