3

セルが変更されたときにメールを送信する必要があるこの単純なスクリプトがあります

function onEdit(e) {  

var doc = e.source; 

 var r = doc.getActiveRange().getValue();


 if (r == "Niccolò"){
var a = doc.getActiveRange().setBackground('#ff0000');
var b = GmailApp.sendEmail('name@gmail.com', 'subject', 'body');

}

}

この機能はセルの色も変更します。問題は、セルの色が機能することです。そのため、メールを送信しないときにセルの色が変化します。とてもシンプルに見えますが、なぜ機能しないのかわかりません!

4

1 に答える 1

3

onEdit()onOpen()のような単純なトリガー、またはonFormSubmit()許可なしで実行されるために可能なアクションのセットが限られている場合。詳細については、ドキュメントを参照してください。

したがって、あなたが説明するこの振る舞いは正常です。

同じドキュメントページで説明されているように、代わりにインストール可能なトリガーを使用する必要があります。

ここにドキュメントの要約があります:

これらの単純なトリガーは、Googleスプレッドシートのアクションに応答して実行され、アクティブユーザーとして実行されます。たとえば、ボブがスプレッドシートを開くと、誰がスプレッドシートにスクリプトを追加したかに関係なく、onOpen関数はボブとして実行されます。このため、単純なトリガーは許可されている機能に制限があります。スプレッドシートが読み取り専用モードで開かれている場合、トリガーは実行できません。現在のユーザーを特定することはできません。そのユーザーとしての認証を必要とするサービスにはアクセスできません。たとえば、Google翻訳サービスは匿名であり、単純なトリガーでアクセスできます。Googleカレンダー、Gmail、およびサイトは匿名ではなく、単純なトリガーはこれらのサービスにアクセスできません。現在のスプレッドシートのみを変更できます。他のスプレッドシートへのアクセスは禁止されています。イベント権限の詳細については、

于 2012-10-22T16:51:18.523 に答える