サイトアイコン Googleスプレッドシート 完全攻略

【GAS】 チェックボックスでそのへんのチェックボックスをすべてON/OFFする方法(getDataRegion)

GAS応用の一覧

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

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

前回

【GAS】チェックボックスを一気にすべてON/OFFする方法(Gスプレッドシート)
複数のチェックボックスを一気に変更することができます。

今回は、とっても価値の高い方法をお伝えします。


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

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

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

動画はこちら

シートはこちら

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

スクリプト

function onEdit(e) {
  const SH_NAME = "チェックボックスでチェック"  //シート名
  const CKPOS = "G6"          //一括チェックボックスのセル位置
  const range = e.range


  if ((range.getSheet().getName() != SH_NAME) ||     //シート名が異なる
    (range.getA1Notation() != CKPOS))      //位置が異なる
    return


  const region = range.getDataRegion()
  range.isChecked() ? region.check() : region.uncheck()
}

 

ポイント

range.getDataRegion()

で特定のセルから隣接した範囲(Ctrl+Aで指定した範囲)を取得することができます。

なので、その範囲に対して check() でチェックボックスのON uncheck() でチェックボックスのOFFができます。

この動きをGASで実現する

 

onEdit関数は、どのシートの操作でも飛んでくるので、シート名をチェックして
すぐに返してあげましょう。

 

 

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

つぎはこちら

【GAS】チェックボックスのON/OFFで項目をグレーアウトしメールを返信する方法
条件書式の効果的な使用方法がわかります。 チェックボックスのON/OFFにより項目のON/OFFが設定できるようになります。

GAS応用の一覧

 

最初は、以下のようにやっていたのですが、

function onEdit(e) {
  const Array1 = ['I2', 'I3', 'I4', 'I5', 'I6', 'I7', 'K3']
  const SH_NAME = "チェックボックスでチェック"



  if (e.source.getActiveSheet().getName() != SH_NAME) return


  if ((e.range.getRow() != 2) ||         //全国の行
    (e.range.getColumn() != 7)) return  //全国のカラム


  const sh = SpreadsheetApp.getActiveSheet()
  const nval = e.range.getValue()
  Array1.map((val) => { sh.getRange(val).setValue(nval) })
}

以下を参考にさせていただきました。

モバイルバージョンを終了