回答編集履歴
1
誤字の修正
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
|
-
|
69
|
+
var date = new Date();
|
68
|
-
var ss = SpreadsheetApp.getActive();
|
70
|
+
var ss = SpreadsheetApp.getActive();
|
69
|
-
|
71
|
+
var sh2 = ss.getSheetByName("シート2");//判定用に作成した任意のシートの名前
|
70
|
-
|
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
|
```
|