こんにちは!
今回は「GASにおいて特定のセルや行が編集された時のみ処理を行う方法」についてお伝えしたいと思います。
僕が調べた限りですが、トリガーレベルで設定できることはできず、編集されたセルを判別して処理を行うようにしました。
e.range.getColumn()とe.range.getRow()を使って編集されたセルを判別する
編集された列や行を取得して、対象かどうか判別するイメージです。
編集された列や行を取得
編集された列を取得:e.range.getColumn()
編集された行を取得:e.range.getRow()
実際に具体例を用いて説明いたします。
const onChangeCell = (e) => {
// (2,3)のセルが編集されたときだけ、処理を行う
const targetColumn = 2;
const targetRow = 3;
const selectedColumn = e.range.getColumn();
const selectedRow = e.range.getRow();
if (
targetColumn === selectedColumn &&
targetRow === selectedRow
) {
// 処理
// ・・・
};
};
これで特定のセルが編集されたときのみ、処理を行うことができます。
トリガーは「編集時」に呼ばれるように設定します。
注意点として、何も処理しない場合でもGASの無料枠を使ってしまうので、お気をつけください〜。
以上、お疲れさまでした〜🍵