下記リリースノートにある通り、4月のGoogle Apps Scriptのアップデートでスプレッドシートに「onSelectionChange」トリガーが追加されました。
ドキュメントを開くなど、特定のイベントが発生したときに、自動的に予約済みの組込み関数が実行される仕組みをシンプルトリガー(Simple Triggers)と呼びますが、onSelectionChangeもこのシンプルトリガーで、ユーザーが選択範囲を変更すると自動的に実行されます。
例えば、下記は選択しているセルの値をアラート表示するだけのコードですが、このコードを追加した状態で選択範囲を変更すると、自動的に関数が実行されることが確認できます。
function onSelectionChange(e) { SpreadsheetApp.getUi().alert(e.range.getCell(1, 1).getValue()); }
メニューやボタンを押すことなくスクリプトが実行できるのは便利ですが、選択セルを変更する度にスクリプトが走ると、処理が重くなりそうです。
(計測したことが無いので実際は分かりませんが・・・)
使いどころが中々難しいな、と個人的には思いますが、サイドバーと組み合わせると、値の読み書きが簡単にできるので便利なのかもしれません。
ちなみに、同様の仕組みはOffice アドインでも「SelectionChanged」イベントとして用意されています。
また、私がテストした限りでは、現時点(2020年5月)では環境によってonSelectionChangeが動いたり動かなかったりしました。
同じ環境でも昨日動いていたコードが翌日動かなくなったり、よく分からない挙動が続いていますが、最初に書いた通り実装されたばかりの機能なので、まだ完全にロールアウトされていないのかもしれません。
Stack Overflowでも同様の報告がされています。
この記事へのコメントはありません。