【GAS】チェックされた行を一気に削除する方法(Gスプレッドシート)

基礎講座

GAS基礎講座一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】非表示の行を一気に削除する方法(Gスプレッドシート)
GASを使用して
  • 非表示の行を一気に削除できます。
  • 降順のループの使い方がわかります。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    • チェックボックスの値の取得方法がわかります。
    • チェックされた行を一気に削除する方法がわかります。

    なので、サクッとマスターして

    と答えてあげてください。

     

    ご質問

    こんばんは〜
    今回非表示の行を削除ということでしたが、 業務で案件管理のシートがあって、 1行に要件や進捗状況、対応者名などの項目があり、例えばI列にチェックボックスを設定しておき、業務が完了したらチェックを入れ、チェックが入った行をグレーアウトするようにした場合、 その日の業務が完了したら、グレーアウトした業務のみを削除したい場合のGASコードはどうなりますか? 完了と入力(またはチェックボックスにチェク)

    質問文が長くややこしそうなので、一旦質問を閉じてしまいました。

    でも、よく読むと単に、チェックされた行を削除すれば良さそうです。
    であれば、簡単なのでやってみました。

    動画はこちら

    シートはこちら

    *クリックすることでシートが開きます。(コピーしてお使いください)

     

    スクリプト

    //チェックされた行の削除
    function delckline() {
      const CKPOS = 1 //チェックボックスの位置(列) A→1,B→2,,,
      const ss = SpreadsheetApp.getActiveSpreadsheet()
      const sh = ss.getActiveSheet()
    
    
      for (i = sh.getLastRow(); i > 0; i--) {
        if (sh.getRange(i, CKPOS).getValue()) {  //チェックされていたら
          console.log(sh.getRange(i, CKPOS).getValue(), i, "行目 削除")
          sh.deleteRow(i) //行の削除
        }
      }
    }

     

     

     

    チェックする列を変更する場合は、CKPOSを変更すればOKです。

    例)A列→1,B列→2

    今回のスクリプトはなかなかニーズがあるのではないでしょうか?

    質問者さまありがとうございました。

     

    上記スクリプトは1行ずつチェックしていますが、チェックする行が
    大量にある場合タイムアウトが発生する場合があります。
    その対処方法はこちら↓

     

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    【GAS】チェックされた行を一気に非表示にする方法
  • GASの変更方法がわかります。
  • チェックされた行を一気に非表示にする方法がわかります。
  • GAS基礎講座一覧

    コメント

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