質問編集履歴
6
試したこと4を追記。
title
CHANGED
File without changes
|
body
CHANGED
@@ -160,7 +160,20 @@
|
|
160
160
|
|
161
161
|
やはり、onOpenで「実行」をクリックしなければ、「このドキュメントに添付されたスクリプトを実行するには、あなたの許可が必要です。」が表示されないようです。
|
162
162
|
|
163
|
+
### 試したこと4:別のスクリプトで試しても実現できない
|
163
164
|
|
165
|
+
回答者さんに試していただきました。
|
166
|
+
> 普通に(onOpenではない)動かす関数をスクリプトエディタで書いた上で、エディタ画面で実行。
|
167
|
+
> 同じように、承認を求められ、同じように動作しなかった。
|
168
|
+
> 少なくとも数ヶ月前までは、その場で最初の実行が走っていた。どうも承認した瞬間の最初の関数呼び出しの動き自体がかわってる気がする……
|
169
|
+
|
170
|
+
ちなみにGsuite外の個人用のアカウントでも試していただきましたが、
|
171
|
+
違った動きはみられませんでした。
|
172
|
+
|
173
|
+
### これはもうgoogleの機能の問題なのか?
|
174
|
+
|
175
|
+
という感じがしていますが…。なぜなのでしょうか…。
|
176
|
+
|
164
177
|
### 補足情報
|
165
178
|
|
166
179
|
- 当方Gsuiteユーザです
|
5
試したこと3を追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -148,18 +148,29 @@
|
|
148
148
|
|
149
149
|
に変更して再度実行しましたが、改善は見られませんでした。
|
150
150
|
|
151
|
+
### 試したこと3:onOpenを削除して、トリガーを設定
|
151
152
|
|
153
|
+
onOpen⇒addMenuを起動するスクリプトをまるっと削除して、
|
154
|
+
トリガーを設定しました。
|
155
|
+
(実行する関数/makeContactFromList」「イベントソース/スプレッドシート・起動時」で設定)
|
156
|
+
|
157
|
+
↓
|
158
|
+
|
159
|
+
結果、「このドキュメントに添付されたスクリプトを実行するには、あなたの許可が必要です。」が表示されなくなり、前に進みませんでした。
|
160
|
+
|
161
|
+
やはり、onOpenで「実行」をクリックしなければ、「このドキュメントに添付されたスクリプトを実行するには、あなたの許可が必要です。」が表示されないようです。
|
162
|
+
|
163
|
+
|
152
164
|
### 補足情報
|
153
165
|
|
154
166
|
- 当方Gsuiteユーザです
|
167
|
+
|
155
168
|
- 一度実行すればキレイに更新されるので、スクリプトの記述に問題があるわけではなさそうです。
|
169
|
+
|
156
170
|
- 当初(2018年9月、10月頃)はうまくいっていたのですが、11月頃からできなくなりました。
|
171
|
+
|
157
172
|
- ~~できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。~~
|
158
173
|
⇒ GsuiteでSSO導入無しのユーザさんに検証いただく。結果、同様の事象が発生したので関係なさそう。
|
159
|
-
- トリガー設定はスクリプトの制作段階(2018年8月頃)で一度設定してやってみましたが、
|
160
|
-
(確か「実行する関数/makeContactFromList」「イベントソース/スプレッドシート・起動時」で設定)
|
161
|
-
トリガーだけだと、「このドキュメントに添付されたスクリプトを実行するには、あなたの許可が必要です。」が表示されず、やむなくonOpenでクリックするひと手間を入れた記憶があります。
|
162
|
-
…が、もう一度やってみます。
|
163
174
|
|
164
175
|
### 実行トランススクリプトの結果
|
165
176
|
|
4
実行トランススクリプトをcode表示に変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -169,7 +169,7 @@
|
|
169
169
|
・2回目の実行:onOpenをすっとばして、fanction実行されている
|
170
170
|
です。
|
171
171
|
|
172
|
-
|
172
|
+
```ログ
|
173
173
|
**(実行前)※作成時に試したログだと思われます**
|
174
174
|
[19-01-16 17:20:08:132 PST] SpreadsheetApp.getActiveRange() [0 秒]
|
175
175
|
[19-01-16 17:20:08:132 PST] Range.getRow() [0 秒]
|
@@ -229,5 +229,5 @@
|
|
229
229
|
[19-01-16 17:22:45:514 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
|
230
230
|
[19-01-16 17:22:45:584 PST] Spreadsheet.toast([画面を閉じてください, 完了, -1.0]) [0.07 秒]
|
231
231
|
[19-01-16 17:22:45:651 PST] 実行が無事終了しました(合計ランタイム 34.5 秒)
|
232
|
-
|
232
|
+
```
|
233
233
|
連絡先はきれいに更新されました。
|
3
追加情報を記載(補足事項)
title
CHANGED
File without changes
|
body
CHANGED
@@ -34,9 +34,8 @@
|
|
34
34
|
一度のクリックで実行する対処法をご存知の方、ご教示いただけないでしょうか。
|
35
35
|
|
36
36
|
|
37
|
+
### エラーメッセージ
|
37
38
|
|
38
|
-
### 発生している問題・エラーメッセージ
|
39
|
-
|
40
39
|
エラーメッセージは特に何も出ません。
|
41
40
|
|
42
41
|
### 該当のソースコード
|
@@ -119,15 +118,49 @@
|
|
119
118
|
ので、SSOの関連は低いことが推察されます。
|
120
119
|
|
121
120
|
|
121
|
+
### 試したこと2:addMenuメソッド⇒addItemメソッドに変更
|
122
122
|
|
123
|
+
(変更前)
|
124
|
+
```ここに言語名を入力
|
125
|
+
/** メニューへ登録 */
|
126
|
+
function onOpen() {
|
127
|
+
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
|
128
|
+
var entries = [{
|
123
|
-
|
129
|
+
name : "連絡先を更新",
|
130
|
+
functionName : "makeContactFromList"
|
131
|
+
}];
|
132
|
+
spreadsheet.addMenu("ここをクリックしてください", entries);
|
133
|
+
};
|
134
|
+
```
|
124
135
|
|
125
|
-
|
136
|
+
↓
|
126
|
-
・一度実行すればキレイに更新されるので、スクリプトの記述に問題があるわけではなさそうです。
|
127
|
-
・当初はうまくいっていたのですが、突然できなくなりました。
|
128
|
-
・~~できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。~~
|
129
|
-
⇒ GsuiteでSSO導入無しのユーザさんに検証いただく。結果、同様の事象が発生したので関係なさそう。
|
130
137
|
|
138
|
+
(変更後)
|
139
|
+
```ここに言語名を入力
|
140
|
+
/** メニューへ登録 */
|
141
|
+
function onOpen() {
|
142
|
+
var ui = SpreadsheetApp.getUi(); // Uiクラスを取得する
|
143
|
+
var menu = ui.createMenu('ここをクリックしてください'); // Uiクラスからメニューを作成する
|
144
|
+
menu.addItem('連絡先を更新', 'makeContactFromList'); // メニューにアイテムを追加する
|
145
|
+
menu.addToUi(); // メニューをUiクラスに追加する
|
146
|
+
};
|
147
|
+
```
|
148
|
+
|
149
|
+
に変更して再度実行しましたが、改善は見られませんでした。
|
150
|
+
|
151
|
+
|
152
|
+
### 補足情報
|
153
|
+
|
154
|
+
- 当方Gsuiteユーザです
|
155
|
+
- 一度実行すればキレイに更新されるので、スクリプトの記述に問題があるわけではなさそうです。
|
156
|
+
- 当初(2018年9月、10月頃)はうまくいっていたのですが、11月頃からできなくなりました。
|
157
|
+
- ~~できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。~~
|
158
|
+
⇒ GsuiteでSSO導入無しのユーザさんに検証いただく。結果、同様の事象が発生したので関係なさそう。
|
159
|
+
- トリガー設定はスクリプトの制作段階(2018年8月頃)で一度設定してやってみましたが、
|
160
|
+
(確か「実行する関数/makeContactFromList」「イベントソース/スプレッドシート・起動時」で設定)
|
161
|
+
トリガーだけだと、「このドキュメントに添付されたスクリプトを実行するには、あなたの許可が必要です。」が表示されず、やむなくonOpenでクリックするひと手間を入れた記憶があります。
|
162
|
+
…が、もう一度やってみます。
|
163
|
+
|
131
164
|
### 実行トランススクリプトの結果
|
132
165
|
|
133
166
|
ご依頼ありがとうございます。下記にて記載いたしますが要約は
|
2
内容をより詳細にした。1つの検証結果を追記した。
title
CHANGED
File without changes
|
body
CHANGED
@@ -24,8 +24,13 @@
|
|
24
24
|
ちなみに再度③の「連絡先を更新」ボタンをクリックすると、
|
25
25
|
⑥のfunctionが実行されはじめます。
|
26
26
|
|
27
|
-
|
27
|
+
### 問題を端的に言うと(papinianusさんより)
|
28
28
|
|
29
|
+
> 質問はつきつめると、「最初の承認直後には、スクリプトが動作してくれないがそれはなぜか?」
|
30
|
+
|
31
|
+
まさにこれです。
|
32
|
+
|
33
|
+
|
29
34
|
一度のクリックで実行する対処法をご存知の方、ご教示いただけないでしょうか。
|
30
35
|
|
31
36
|
|
@@ -103,16 +108,25 @@
|
|
103
108
|
};
|
104
109
|
```
|
105
110
|
|
106
|
-
### 試したこと
|
107
111
|
|
108
|
-
|
112
|
+
### 試したこと:SSO(SAML2.0)が関係しているか検証
|
109
113
|
|
114
|
+
~~当方Gsuiteユーザで、出来なくなったタイミングが、GsuiteにSSOを入れたタイミングと一致しているような気がします。~~
|
115
|
+
|
116
|
+
⇒ GsuiteでSSOを入れていないユーザさんに事象再現をしていただきました。
|
117
|
+
結果、当方と同じく、承認した直後にはスクリプトは走らず、二回目に実行したらグループに入りました。
|
118
|
+
|
119
|
+
ので、SSOの関連は低いことが推察されます。
|
120
|
+
|
121
|
+
|
122
|
+
|
110
123
|
### 補足情報(FW/ツールのバージョンなど)
|
111
124
|
|
112
125
|
・当方Gsuiteユーザです
|
113
126
|
・一度実行すればキレイに更新されるので、スクリプトの記述に問題があるわけではなさそうです。
|
114
127
|
・当初はうまくいっていたのですが、突然できなくなりました。
|
115
|
-
・できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。
|
128
|
+
・~~できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。~~
|
129
|
+
⇒ GsuiteでSSO導入無しのユーザさんに検証いただく。結果、同様の事象が発生したので関係なさそう。
|
116
130
|
|
117
131
|
### 実行トランススクリプトの結果
|
118
132
|
|
1
実行トランススクリプト情報を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -112,4 +112,75 @@
|
|
112
112
|
・当方Gsuiteユーザです
|
113
113
|
・一度実行すればキレイに更新されるので、スクリプトの記述に問題があるわけではなさそうです。
|
114
114
|
・当初はうまくいっていたのですが、突然できなくなりました。
|
115
|
-
・できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。
|
115
|
+
・できなくなったタイミングがGsuiteにSSO(SAML2.0)を導入したあたりと一致しているように思います。
|
116
|
+
|
117
|
+
### 実行トランススクリプトの結果
|
118
|
+
|
119
|
+
ご依頼ありがとうございます。下記にて記載いたしますが要約は
|
120
|
+
|
121
|
+
・1回目の実行:何も結果表示されない
|
122
|
+
・2回目の実行:onOpenをすっとばして、fanction実行されている
|
123
|
+
です。
|
124
|
+
|
125
|
+
|
126
|
+
**(実行前)※作成時に試したログだと思われます**
|
127
|
+
[19-01-16 17:20:08:132 PST] SpreadsheetApp.getActiveRange() [0 秒]
|
128
|
+
[19-01-16 17:20:08:132 PST] Range.getRow() [0 秒]
|
129
|
+
[19-01-16 17:20:08:132 PST] Range.getLastRow() [0 秒]
|
130
|
+
[19-01-16 17:20:08:132 PST] Range.getColumn() [0 秒]
|
131
|
+
[19-01-16 17:20:08:133 PST] Range.getLastColumn() [0 秒]
|
132
|
+
[19-01-16 17:20:08:133 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
|
133
|
+
[19-01-16 17:20:08:134 PST] 実行を開始しています
|
134
|
+
[19-01-16 17:20:08:139 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
|
135
|
+
[19-01-16 17:20:08:228 PST] Spreadsheet.addMenu([ここをクリックしてください, [{functionName=makeContactFromList, name=連絡先を更新}]]) [0.087 秒]
|
136
|
+
[19-01-16 17:20:08:357 PST] 実行が無事終了しました(合計ランタイム 0.089 秒)
|
137
|
+
|
138
|
+
**(一回目の実行後)※変化ありませんでした**
|
139
|
+
[19-01-16 17:20:08:132 PST] SpreadsheetApp.getActiveRange() [0 秒]
|
140
|
+
[19-01-16 17:20:08:132 PST] Range.getRow() [0 秒]
|
141
|
+
[19-01-16 17:20:08:132 PST] Range.getLastRow() [0 秒]
|
142
|
+
[19-01-16 17:20:08:132 PST] Range.getColumn() [0 秒]
|
143
|
+
[19-01-16 17:20:08:133 PST] Range.getLastColumn() [0 秒]
|
144
|
+
[19-01-16 17:20:08:133 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
|
145
|
+
[19-01-16 17:20:08:134 PST] 実行を開始しています
|
146
|
+
[19-01-16 17:20:08:139 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
|
147
|
+
[19-01-16 17:20:08:228 PST] Spreadsheet.addMenu([ここをクリックしてください, [{functionName=makeContactFromList, name=連絡先を更新}]]) [0.087 秒]
|
148
|
+
[19-01-16 17:20:08:357 PST] 実行が無事終了しました(合計ランタイム 0.089 秒)
|
149
|
+
|
150
|
+
**(2回目の実行後)※functionのみ実行されます**
|
151
|
+
[19-01-16 17:22:11:077 PST] 実行を開始しています
|
152
|
+
[19-01-16 17:22:11:086 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
|
153
|
+
[19-01-16 17:22:11:163 PST] Spreadsheet.toast([処理中, , -1.0]) [0.076 秒]
|
154
|
+
[19-01-16 17:22:11:535 PST] ContactsApp.getContact([//@email.com]) [0.37 秒]
|
155
|
+
[19-01-16 17:22:14:403 PST] ContactsApp.getContact([//@email.com]) [2.867 秒]
|
156
|
+
[19-01-16 17:22:17:038 PST] ContactsApp.getContact([//@email.com]) [2.635 秒]
|
157
|
+
[19-01-16 17:22:19:945 PST] ContactsApp.getContact([//@email.com]) [2.906 秒]
|
158
|
+
[19-01-16 17:22:22:782 PST] ContactsApp.getContact([//@email.com]) [2.836 秒]
|
159
|
+
[19-01-16 17:22:25:156 PST] ContactsApp.getContact([//@email.com]) [2.373 秒]
|
160
|
+
[19-01-16 17:22:28:088 PST] ContactsApp.getContact([//@email.com]) [2.931 秒]
|
161
|
+
[19-01-16 17:22:30:968 PST] ContactsApp.getContact([//@email.com]) [2.88 秒]
|
162
|
+
[19-01-16 17:22:33:801 PST] ContactsApp.getContact([//@email.com]) [2.83 秒]
|
163
|
+
[19-01-16 17:22:36:555 PST] ContactsApp.getContact([//@email.com]) [2.753 秒]
|
164
|
+
[19-01-16 17:22:36:556 PST] SpreadsheetApp.getActiveSheet() [0 秒]
|
165
|
+
[19-01-16 17:22:36:866 PST] Sheet.getDataRange() [0.309 秒]
|
166
|
+
[19-01-16 17:22:36:866 PST] Range.getNumRows() [0 秒]
|
167
|
+
[19-01-16 17:22:36:941 PST] Range.getValues() [0.074 秒]
|
168
|
+
[19-01-16 17:22:39:606 PST] ContactsApp.getContact([//@email.com]) [2.664 秒]
|
169
|
+
[19-01-16 17:22:39:687 PST] ContactsApp.getContactGroup([●●●]) [0.081 秒]
|
170
|
+
[19-01-16 17:22:39:688 PST] Contact.addToGroup([ContactGroup]) [0 秒]
|
171
|
+
[19-01-16 17:22:39:688 PST] ContactGroup.addContact([Contact]) [0 秒]
|
172
|
+
[19-01-16 17:22:39:689 PST] Logger.log(//@email.comを●●●に追加, []]) [0 秒]
|
173
|
+
[19-01-16 17:22:42:534 PST] ContactsApp.getContact([//@email.com]) [2.844 秒]
|
174
|
+
[19-01-16 17:22:42:613 PST] ContactsApp.getContactGroup([▼▼▼]) [0.078 秒]
|
175
|
+
[19-01-16 17:22:42:613 PST] Contact.addToGroup([ContactGroup]) [0 秒]
|
176
|
+
[19-01-16 17:22:42:614 PST] ContactGroup.addContact([Contact]) [0 秒]
|
177
|
+
[19-01-16 17:22:42:614 PST] Logger.log([//@email.comを▼▼▼に追加, []]) [0 秒]
|
178
|
+
[19-01-16 17:22:45:512 PST] ContactsApp.getContact([//@email.com]) [2.897 秒]
|
179
|
+
[19-01-16 17:22:45:512 PST] Contact.addToGroup([ContactGroup]) [0 秒]
|
180
|
+
[19-01-16 17:22:45:513 PST] ContactGroup.addContact([Contact]) [0 秒]
|
181
|
+
[19-01-16 17:22:45:513 PST] Logger.log([//@email.comを▼▼▼に追加, []]) [0 秒]
|
182
|
+
[19-01-16 17:22:45:514 PST] SpreadsheetApp.getActiveSpreadsheet() [0 秒]
|
183
|
+
[19-01-16 17:22:45:584 PST] Spreadsheet.toast([画面を閉じてください, 完了, -1.0]) [0.07 秒]
|
184
|
+
[19-01-16 17:22:45:651 PST] 実行が無事終了しました(合計ランタイム 34.5 秒)
|
185
|
+
|
186
|
+
連絡先はきれいに更新されました。
|