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

コピペでできる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応用の一覧

コメント

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