teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

誤字の修正

2021/10/30 07:08

投稿

Guruguru
Guruguru

スコア7

answer CHANGED
@@ -1,7 +1,9 @@
1
1
  承認が切れないようにする方法が分からなかったため、現時点で行っている「承認が切れた際に分かるようにするための方法」を記載しておきます。
2
+ (無駄なスクリプトもあるかと思います。ご容赦ください)
2
3
 
3
4
  方法:
5
+ トリガー実行日を任意の判定用セルに記録。
4
- トリガー実行日を任意の判定用セルに記録、スプレッドシート起動時にその記録とスプレッドシート起動日を比較し、トリガー実行日<スプレッドシート起動日の場合はトリガーを再設定するようエラーメッセージを表示する
6
+ スプレッドシート起動時にその記録とスプレッドシート起動日を比較し、トリガー実行日<スプレッドシート起動日の場合はトリガーを再設定するようエラーメッセージを表示する
5
7
 
6
8
  スクリプト
7
9
  ```GAS
@@ -23,9 +25,9 @@
23
25
 
24
26
  //■トリガーが起動していない場合の判定用関数
25
27
  function onOpen(){
26
- var ss = SpreadsheetApp.getActive();
28
+ var ss = SpreadsheetApp.getActive();
27
29
 
28
- //スプレッドシート起動日の0時0分0秒を取得
30
+ //スプレッドシート起動日の0時0分0秒を取得
29
31
  var date = new Date();
30
32
  var start = getYMD(date);
31
33
 
@@ -64,25 +66,24 @@
64
66
  }
65
67
 
66
68
  function Example(動作確認を行いたいメインの関数名)() {//スプレッドシート起動時に実行
67
- var date = new Date();
69
+ var date = new Date();
68
- var ss = SpreadsheetApp.getActive();
70
+ var ss = SpreadsheetApp.getActive();
69
- var sh2 = ss.getSheetByName("シート2");//判定用に作成した任意のシートの名前
71
+ var sh2 = ss.getSheetByName("シート2");//判定用に作成した任意のシートの名前
70
- var sh2openss = sh2.getRange("G2");//判定に使用する任意のセル
72
+ var sh2openss = sh2.getRange("G2");//判定に使用する任意のセル
71
73
  sh2openss.setValue(date);//トリガー実行時の日時を判定用セルにセット
72
74
 
73
- /*
75
+ /*
74
- 関数内の処理内容記述
76
+   関数内の処理内容記述
75
- 実際のスクリプト運用時には他のスプレッドシートにアクセスして値を取ってくる必要があり、onOpen()のシンプルトリガーではエラーが発生s
76
- */
77
+  */
77
78
  }
78
79
 
79
- /*
80
+ /*
80
- 必要な数だけ関数記述して必要に応じてresetAllTriggers内でトリガー設定
81
+ 必要な数だけ関数記述して必要に応じてresetAllTriggers内でトリガー設定
81
- */
82
+ */
82
83
 
83
84
  //■全トリガーの削除・再設定関数
84
85
  function resetAllTriggers(){
85
- var ss = SpreadsheetApp.getActive();
86
+ var ss = SpreadsheetApp.getActive();
86
87
 
87
88
  //元々セットされていたトリガーが残っていれば検出して削除
88
89
  var triggers = ScriptApp.getProjectTriggers();
@@ -94,13 +95,13 @@
94
95
 
95
96
  // newTriggerメソッドでトリガーを再設定
96
97
  ScriptApp.newTrigger('Example(動作確認を行いたいメインの関数名)')
97
- .forSpreadsheet(ss)
98
+ .forSpreadsheet(ss)
98
- .onOpen() // スプレッドシート起動時のトリガー
99
+ .onOpen() // スプレッドシート起動時のトリガー
99
- .create();
100
+ .create();
100
101
 
101
- /*
102
+ /*
102
- 必要なトリガーの数だけ同様に設定
103
+ 必要なトリガーの数だけ同様に設定
103
- */
104
+ */
104
105
 
105
106
  return "<p>トリガーチェック完了</p> 全トリガー再設定済";
106
107
  }
@@ -126,4 +127,18 @@
126
127
  SpreadsheetApp.getUi().showModelessDialog(htmlOutput, '【 トリガー再設定 】');
127
128
  }
128
129
 
130
+ ```
131
+ ```HTML
132
+ <!DOCTYPE html>
133
+ <html>
134
+ <head>
135
+ <base target="_top">
136
+ </head>
137
+ <body>
138
+ test
139
+ <?!= resetAllTriggers(); ?>
140
+
141
+ <p>このタブを閉じてください。</p>
142
+ </body>
143
+ </html>
129
144
  ```