質問: 現在、スプレッドシートに「生ログ」「読書リスト」という2枚のシートがあります。 「getActiveSheet().getSheetName()」にて、変更のあったシートのシート名を取得し、 それが「生ログ」であった場合にのみ働くスクリプトを書きました。 ですが、シート「読書リスト」にて、「読書リスト」内のデータのみを使い、 「読書リスト」内にグラフを挿入したところ、 変更のあったシートのシート名がなぜか「生ログ」となり、 シート「生ログ」に変更があった場合にのみ働くスクリプトが働くことに気づきました。 あまり困っているわけではないのですが、原因がわかりません。 スクリプトの条件付けの失敗というわけでもないと思うのですが、 なにか原因として思い当たることがあれば、教えていただけると嬉しいです。 よろしくお願いします。
回答: `getActiveSheet`は現在UI上表示されているシートが取れます。 必ずしもそれが編集したシートとイコールにならないケースがあるため、編集したシートを特定したいのであればそのメソッドを使うことはオススメできません。 コードが書かれていないので、確実な回答にはならない可能性がありますが、 多分`onEdit`トリガーを用いて今回の処理を行っていると思います。 `onEdit`トリガーではイベントオブジェクトがわたされ、その中には編集を行った`range`オブジェクトが入っているので、そこからシート→シート名と取得した方が良いでしょう。 具体的なシート名の取得するコードは以下です。 ``` function onEdit(e) { var range = e.range: var sheetName = range.getSheet().getName(); } ```