![見出し画像](https://assets.st-note.com/production/uploads/images/102391005/rectangle_large_type_2_6b78e783ac85cf37e869bcc21ab750f7.jpeg?width=1200)
【GAS】チェックが入ったら別のシートに転記するスクリプトを作りたい|getValues
例えば、Aのリストにチェックリストがあり、チェックを入れた行を別のシートの末尾に転記したい…といったプログラムを作ってみます。
行のデータを別のシートにコピーする
Google Apps Script(GAS)を使用して、特定の条件が満たされた場合に、スプレッドシート上のデータを別のシートに自動的に転記する方法について説明します。
まず、以下のスクリプトを使用して、特定の列にチェックボックスがクリックされたときに、その行のデータを別のシートにコピーする関数を作成します。
今回は「1列目のチェックボックスがチェックされたとき」という1列目のみを検知したいので、e.rangeで現在位置(セル)を検知させて、1列目の場合のみ、を入れいています。念のため、ログで値もキャッチしておきます。
function copyData(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('Sheet1'); // チェックボックスがあるシート名
var sheet2 = ss.getSheetByName('Sheet2'); // コピー先のシート名
var range = sheet1.getDataRange();
var values = range.getValues();
const cell = e.range;
const column = cell.getColumn();
const row = cell.getRow();
Logger.log("column:" + column);
Logger.log("cell:" + cell);
Logger.log("row:" + row);
const lastRow1 = sheet1.getLastRow();
const lastCol1 = sheet1.getLastColumn();
const lastRow2 = sheet2.getLastRow();
const lastCol2 = sheet2.getLastColumn();
Logger.log("lastRow1:" + lastRow1);
Logger.log("lastRow2:" + lastRow2);
Logger.log("lastCol1:" + lastCol1);
Logger.log("lastCol2:" + lastCol2);
var destValues = [];
Logger.log("destValues:" + destValues);
if (column === 1 && e.value === "TRUE") {
destValues=sheet1.getRange(row, 1, 1, lastCol1).getValues();
Logger.log("destValues:" + destValues);
sheet2.getRange(lastRow2+1,1, 1, lastCol1).setValues(destValues);
}
}
![](https://assets.st-note.com/img/1680878350683-LBhmJolYQF.jpg?width=1200)
![](https://assets.st-note.com/img/1680878359505-6mc4EPTDSa.jpg?width=1200)
このスクリプトは、Sheet1の特定の列にあるチェックボックスがクリックされたときに、その行のデータをSheet2に自動的にコピーします。
ひとまずスクリプトを実行して、アカウントに実行権限を与えておきます。
![](https://assets.st-note.com/img/1680878343231-2wOqKwTPbh.jpg?width=1200)
続きはこちら
https://eguweb.jp/gas/62399/
いいなと思ったら応援しよう!
![eguweb](https://assets.st-note.com/production/uploads/images/128772862/profile_0d1f4028e5611b5742ea863753e41113.png?width=600&crop=1:1,smart)