トリガーで遊んでいます。
スプレッドシートには、新しい行に日付を挿入する関数があります。1 分ごとにクロック トリガーとして実行されます。スプレッドシートが開いていても閉じていても問題なく動作します (その部分が気に入っています)。
スタンドアロン スクリプトでは、上記のスプレッドシートで onEdit のトリガーを設定します。e.value をメールで送信するだけです。
スプレッドシートにいて、セルにいくつかの文字を入力するだけで機能します。
私が「期待」するのは、最初のトリガーによって日付が挿入されるたびに、onEdit がトリップすることです。残念ながら、そうではありません。トリガーの外で日付の挿入機能を実行しても、メールの onEdit トリガーが起動しません。
何かご意見は?
私の目標は、onEdit イベントを開始するシートをスクリプトで更新することでした。
ジム
更新#1:
たぶん、このコード例が役に立ちますか?
これを単純化して、スプレッドシート コンテナー内の 1 つのスクリプトにしました。スプレッドシートにインタラクティブな変更を加えると、各関数は単独で正常に動作し、2 番目の関数は正常に動作します。
これは単なる調査なので、割り当てや、ここでテストしていることのまったくナンセンスを無視してください:-)
insertClockTrigger: 毎分実行され、正常に動作します
installableOnEdit: insertClockTrigger が起動したときに、インストール可能な onEdit としてトリガーされることはありません
insertClockTrigger によって行われた編集のように見えるものが、onEdit トリガーを起動していない理由に興味があります。トリガーはトリガーをトリガーしませんか (私自身を助けることができませんでした!)?
function insertClockTrigger() {
var sheet = SpreadsheetApp.openById('spreadsheet-ID').getSheets()[0];
var nDate = new Date();
sheet.getRange(sheet.getLastRow()+1,1,1,1).setValue(nDate).flush;
}
function installableOnEdit(e) {
GmailApp.sendEmail("some@email.com", "Test trig2", "FISH: "+e.value);
}