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

コピペで動く!スプレッドシートのチェックボックス活用術【GAS初心者向け】

GAS応用の一覧

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

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

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


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

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

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

動画はこちら

シートはこちら

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

スクリプト

function onEdit(e) {
  const range = e.range;
  const sheet = range.getSheet();
  const sheetName = sheet.getName();
 
  // 「一覧」シートのA列(2行目以降)が「TRUE(チェック)」に変更されたときのみ動作
  if (sheetName === "一覧" && range.getColumn() === 1 && range.getRow() >= 2 && e.value === "TRUE") {
    const editedRow = range.getRow();
    const lastRow = sheet.getLastRow();
   
    if (lastRow < 2) return;
   
    // 1. A列(2行目〜最終行)のチェックをすべて解除
    sheet.getRange(2, 1, lastRow - 1, 1).setValue(false);
   
    // 2. 今回チェックを入れた行だけをTRUEにする
    sheet.getRange(editedRow, 1).setValue(true);
   
    // 3. 選択された行の「B列の値(項番など)」を取得して「アカウント」シートのD2にセット
    const selectedValue = sheet.getRange(editedRow, 2).getValue(); // 2列目 = B列
   
    const targetSheet = e.source.getSheetByName("アカウント");
    if (targetSheet) {
      targetSheet.getRange("D2").setValue(selectedValue);
    }
  }
}

ポイント

sheet.getRange(2, 1, lastRow - 1, 1).setValue(false);

は、複数のセルに対して値を設定するのでsetValuesでは?
と思ったのですが、同じ値を設定する場合は、setValueで問題ないとのことです。

 

// 3. 選択された行の「B列の値(項番など)」を取得して「アカウント」シートのD2にセット
は、コメントアウトして「アカウント」シート側でVLOOKUPした方が汎用性がありますね。

例えば、「一覧」シートが複数ある場合などは、コメントアウトした方が使い勝手がいいです。

 

 

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

つぎはこちら

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

GAS応用の一覧

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