質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

2回答

1430閲覧

Google Apps Scriptでのトリガー設定が実装しない場合について

mitsuba

総合スコア20

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2018/05/09 05:41

Googleスプレッドシートに以下の様な一覧を作成し、毎週月曜日に対象者へメールを一斉に送付したいと思っており、
スクリプト・トリガーを設定しておりますが、トリガー設定が実装せずに困っております。

イメージ説明
※5/21(月)9時~10時に上記のメールアドレスへメールを送付したいです。

function kensyufy18() { var sheet = SpreadsheetApp.getActiveSheet(); for (var i = 6; i <= sheet.getLastRow(); i++){ var cell1 = sheet.getRange(i, 7); var cell2 = sheet.getRange(i, 11); if (cell1){ var date = new Date(cell1.getValue()); var dataMills = new Date - date.getTime(); var diff = dataMills / (1000 * 60 * 60 * 24); if (diff > 1 && diff < 8){ var content = "※※※\n\n※※※\n\n"; content += "※※※\n※※※\n\n"; content += "◆※※※\n※※※※\n \n\n"; content += "◆※※※\n1※※※\n※※※\n\n"; content += "◆※※※\n※※※\n\n※※※\n\n"; MailApp.sendEmail(cell2.getValue(), '※※※', content); } } } }

イメージ説明

スクリプトのみを実行するとエラー表示なく実装されメールが送付されますが、
トリガーが動かず、メールが送信されずに困っております。

対応方法をご存じでしたら、お教えいただけます様、お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/05/11 00:05

当該のスクリプトはスプレッドシートに紐付いたもの(コンテナバウンド)ということでしょうか?それとも独立した単体のスクリプト(スタンドアロン)でしょうか?
mitsuba

2018/05/17 23:53

スプレッドシートに紐づいたものとなります。
guest

回答2

0

ベストアンサー

コンテナバウンド、了解です。

  • 手動実行でエラーなし
  • トリガーに対するエラー通知設定済み(画像2枚目の「通知」で確認できます)でエラー通知はない
  • トリガーが実行された気配なし
  • soundTrickerさんご指摘部分の検証済み(コンテナバウンドのため、3. は不要)

上記の前提で検証してみましょう。
なお、共通事項として、検証しやすいよう、曜日や時間帯等を調整してください。
また、エラーの有無にかかわらず、トリガーが実行されるかどうかの検証となります。

1. 新規トリガーとして設定してみる

当該のトリガーを一旦削除したのち、当該のスプレッドシートをリロード、新規トリガーとして改めてトリガーを設定。
経験上、これで解決することが多いですが、soundTrickerさんご指摘の「再設定」を「既存トリガーの編集・変更」と誤解されていないか、の確認です。

2. 別のトリガーを設定してみる

具体的には「週タイマー」ではなく「特定の日時」もしくは「時タイマー」が良いでしょう。
スクリプトエディタを開いた状態でしたら、メニューより、 表示 > 実行トランスクリプト にてトリガーが実行されたか確認できます。

3. 別のスプレッドシートで試してみる

当該スプレッドシートのコピーではなく、新規生成後、データとスクリプトをコピーしたほうが良いでしょう。
補足として、可能ならば別のアカウントで試してみるのも良いでしょう。

理想は1で解決ですが、その他は個別の原因を探る必要が出てくると思いますので厄介ですね。

投稿2018/05/18 03:25

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitsuba

2018/05/19 07:09

いつも丁寧に教えてくださり、ありがとうございます。お教えいただいた様に、3で新規でスプレッドシートを作成したところ、トリガーが実装される様になりました。今後も、同様な事象が発生した際は、他の対処方法も参考とさせていただきます。
退会済みユーザー

退会済みユーザー

2018/05/19 07:38

恐らく、実行権限絡みかとは思いますが、当該スプレッドシートに紐付いたプロジェクトに問題があったのでしょうね。 ひとまずは何よりです。
guest

0

いくつか理由が考えられます。
思いついたものを書くと、

  1. 最初のvar sheet = SpreadsheetApp.getActiveSheet(); で正しいシートが取れていない

Time Triggerを使う場合は、getSheetByName()などでシートを指定したほうが無難です。
2. 権限がなくなってしまっている。
もう一度トリガーをセットし直してください。新しいAPIへのアクセスを追加した場合など権限の増減が発生した場合にこの様な操作が必要です。
3. SpreadsheetApp.getActive***が取れていない。
1.と似ていますが、Standaloneスクリプトの場合に発生します。 SpreadsheetApp.openById()spreadsheet.getSheetByName()等を使うようにします。

またTriggerの場合Logger.logではログが追いづらいので、console.logを仕込んでおいて何が起きているかStackdriver Loggingに出力しておくといいと思います。

投稿2018/05/09 06:51

soundTricker

総合スコア137

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitsuba

2018/05/19 07:09

御回答いただきまして、ありがとうございました。また、返信が遅くなりまして、申し訳ありません。今回は、stshishoさんにお教えいただいた内容で解決いたしましたので、stshishoさんをベストアンサーとさせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問