セル編集時にui.alertをポップアップするonEditトリガーを設定したGoogleシートがあります。次に、ユーザーが[OK]または[キャンセル]を選択したかどうかに基づいてアクションを実行します。これは、トリガーとスクリプトを作成したユーザーとしてシートを使用しているときに、すべて正常に動作します。他の人にシートを共有すると(編集許可あり)、セルを編集するとスクリプトが実行されますが、[OK]または[キャンセル]をクリックすると応答が得られません。スクリプトはただ停止します。実行記録に何も表示されず、ログ情報を入力しても何も記録されません。ユーザーの応答に応じて別のアラートを表示:OKまたはキャンセル
最初のui.alertに対して[OK]をクリックすると、2番目のui.alertが表示される問題を示す非常に簡単なコードサンプルをまとめました。
function myFunction() {
var ui = SpreadsheetApp.getUi()
var response = ui.alert('Test', 'Test', ui.ButtonSet.OK_CANCEL);
if (response.OK) {
ui.alert('OK');
}
}
Screenshot of trigger set up is here:
スクリプトを含むテストシートへのリンクはこちらです:
https://docs.google.com/spreadsheets/d/1J16lpg9G1O8hQOxB-J1R4Oy0nsrxIkgWHBfaSl6bpVs/edit#gid=0
何が起こるべきことは、あなたがセル最初ui.alertを編集することで表示され、あなたがクリックOKをクリックすると、2番目のui.alertが表示されます。あなたが試みるときに起こることが期待されるのは、2番目のui.alertが起こらないということです。
推奨事項それは許可のものですか?
コード改正をありがとう。残念ながら、それは問題を解決しません。応答が読み取られず、スクリプトが自分以外のユーザーとして実行されても、適切なアラートは表示されません。その他の提案はありますか? –
これは権利とアプリの権限に由来します。ユーザーは、他のユーザーがシートを編集する権限を持っていても、自分のアカウントでアプリを実行できるようにする必要があります。 単純なコードを実行し、他のサービスを実行する必要がない場合は、onEdit(e)という簡単なトリガーを使用できます。 –