ご訪問ありがとうございます。
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が設定できるようになります。

