GoogleスプレッドシートのonSelectionChangeトリガーについて

2020年4月にこっそりと1個、Googleスプレッドシートのアプデ内容に「新しいシンプルトリガーが追加されました」とありました。すぐに実験してみたのですが、全く動かずそのまま放置していたものがあります。

それが、「onSelectionChange」。シンプルトリガーとは、トリガーから設置するものではなく、onEditやonOpenなどの組み込みの関数の形で発火するもので、構文を掛けば良いだけす。

サンプルファイル

コード

コードといっても、以下のようなコードを書くだけで動き始めます。

使い方

onEditがセル編集時に動くシンプルトリガー。onOpenがスプレッドシートを開いた時に動くシンプルトリガー。そして、このonSelectionChangeは、「選択してるセルが変更された時」に発火するシンプルトリガーになっています。

しかし、このトリガーなのですが、なんだ挙動が不安定で

  • 動かなくなる時がある
  • 再度、オーナーのアカウントに切り替えて開いてみて、セルをクリックすると動いたりする
  • V8エンジンではなく旧来のエンジンにすると動いたりする

といった具合。また、シートを切り替えても作動します。

また、アクティブなセルが変わっただけで発火してしまうので、コード側もonEdit以上に気を使って書かないと実に鬱陶しい動きになります。使い所としては、セルの範囲選択変更時というよりは、シート変更を検知して、現在のアクティブシートを検知したら即座に実行などくらいかなぁ。

使い所が思いつかない・・・・ブランクセルの処理などonEditでも考慮しなければならないのと同様に、こちらのトリガーも考慮が必要になります。

関連リンク