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

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

ただいまの
回答率

90.84%

  • Google Apps Script

    667questions

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

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

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 206

mitsuba

score 6

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);
      }
    }
  }
}

イメージ説明

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • stshisho

    2018/05/11 09:05

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

    キャンセル

  • mitsuba

    2018/05/18 08:53

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

    キャンセル

回答 2

checkベストアンサー

+1

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

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

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

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

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

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

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/19 16:09

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

    キャンセル

  • 2018/05/19 16:38

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

    キャンセル

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/19 16:09

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

    キャンセル

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

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Google Apps Script

    667questions

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