見出し画像

【Google Apps Script 通信 vol.7】スプレッドシートの値をクリアしよう。

こんにちは。きゅうりです。

例えばvol.4で作成したシート名取得のスクリプト。毎回使うときに出力シートの値をいったんクリアにしてからスクリプト実行したい、なんて場面がありそうですよね。

無題

サンプルコード

先ほど紹介したvol.4|シート名取得で使用した出力シートの値を消す場合のコードです。A2~最終行までをクリアする指示にしています。

function myFunction() {

 // 現在のスプレッドシートにアクセス
 var ss = SpreadsheetApp.getActiveSpreadsheet();

 // 出力シートにアクセス
 var outputSheet = ss.getSheetByName('出力');
 
 // 出力シートの最終行を取得
 var lastrow = outputSheet.getLastRow();
 
 // 値をクリアしたい範囲を指定(今回の場合はA2~最終行までを指定)
 var range = outputSheet.getRange("A2:A"+lastrow);
 
 // 指定した範囲の値をクリア
 range.clearContent();
 
}

たったこれだけ。すぐ出来ちゃいました。

でも1つだけ注意事項があります。

出力シートのA2以降に値が入っていない状態(=最終行がA1)でスクリプト実行すると…

無題

A1のカラム名がクリアされてしまいます。指定範囲がA2:A1となるためです。

なんかちょっと嫌だ…というわけで条件分岐させましょう。

条件分岐|出力シートに値が入っている場合はクリアしない

下記サンプルコードです。

function myFunction() {

 // 現在のスプレッドシートにアクセス
 var ss = SpreadsheetApp.getActiveSpreadsheet();

 // 出力シートにアクセス
 var outputSheet = ss.getSheetByName('出力');
 
 // 出力シートの最終行を取得
 var lastrow = outputSheet.getLastRow();
 
 // ★ここを追加しました!
 // A2以降に値が入っている場合のみ次を実行(=A1のみに値が入っている場合は実行しない)
 if (lastrow > 1){
 
 // 値をクリアしたい範囲を指定
 var range = outputSheet.getRange("A2:A"+lastrow);
 
 // 指定した範囲の値をクリア
 range.clearContent();
 
}}

ボタンで実行できるようにしたらもっと最高

使いたいときにいつでもぽちっとするだけで実行できちゃいますね。

無題

ボタンで実行する方法はこちらの記事で紹介しています。

では、また次回お会いしましょう(*'▽')

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