回答編集履歴
4
修正
test
CHANGED
@@ -7,19 +7,13 @@
|
|
7
7
|
|
8
8
|
---
|
9
9
|
|
10
|
+
【原因】
|
11
|
+
GASでは、画面への反映にタイムラグが生じることがあります。
|
12
|
+
Range.getValue()を複数回呼び出す場合などの場面では、パフォーマンス向上のため、スプシの操作が内部的にまとめて行われる場合があります。
|
10
13
|
|
11
|
-
【原因】
|
12
|
-
メッセージボックスが表示された時点で、内部の②③の処理自体は完了しています。
|
13
|
-
たとえば、スクリプトの最後の方、Browser.msgBox~の1行前に
|
14
|
-
console.log("!!処理終了!!")
|
15
|
-
という行を追記して実行してみると、
|
16
|
-
|
14
|
+
しかし、Browser.msgBox()関数が呼び出されると、まとめて行われる予定だった操作がストップしてしまうため、質問のような状態になります。
|
15
|
+
(OKを押すと、保留されていた操作が再開します)
|
17
16
|
|
18
|
-
GASでは、「処理の実行」と「処理の反映」との間でタイムラグが生じることがあります。
|
19
|
-
(Range.getValue()を複数回呼び出す場合など、パフォーマンス向上目的でまとめて行うため)
|
20
|
-
|
21
|
-
Browser.msgBox()関数が呼び出されるとストップしてしまうため、質問のような状態になります。
|
22
|
-
|
23
17
|
【解決策】
|
24
18
|
メッセージボックスの表示前に、
|
25
19
|
SpreadsheetApp.flush()
|
3
test
CHANGED
@@ -3,8 +3,10 @@
|
|
3
3
|
|
4
4
|
> b) 現コードをどのように修正すれば、「実現したいこと」欄に記載のタイミングでメッセージボックスが表示されるようになりますか?
|
5
5
|
→メッセージボックスの表示前に、SpreadsheetApp.flush(); を追記します。
|
6
|
-
|
6
|
+
|
7
|
+
|
7
8
|
---
|
9
|
+
|
8
10
|
|
9
11
|
【原因】
|
10
12
|
メッセージボックスが表示された時点で、内部の②③の処理自体は完了しています。
|
2
追記
test
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
> a) Browser.msgBox のコードを記載する位置に誤りがありますか?
|
2
|
+
→誤りはありません。
|
3
|
+
|
4
|
+
> b) 現コードをどのように修正すれば、「実現したいこと」欄に記載のタイミングでメッセージボックスが表示されるようになりますか?
|
5
|
+
→メッセージボックスの表示前に、SpreadsheetApp.flush(); を追記します。
|
6
|
+
|
7
|
+
---
|
8
|
+
|
1
9
|
【原因】
|
2
10
|
メッセージボックスが表示された時点で、内部の②③の処理自体は完了しています。
|
3
11
|
たとえば、スクリプトの最後の方、Browser.msgBox~の1行前に
|
1
test
CHANGED
@@ -5,15 +5,15 @@
|
|
5
5
|
という行を追記して実行してみると、
|
6
6
|
(スプレッドシート上質問文中の②③は表示されませんが)エディタの実行ログ画面には、「!!処理終了!!」と表示され、メッセージボックスが表示されるはずです。
|
7
7
|
|
8
|
-
GASでは、「処理の実行」と「
|
8
|
+
GASでは、「処理の実行」と「処理の反映」との間でタイムラグが生じることがあります。
|
9
|
-
(Range.getValue()を複数回呼び出す場合など
|
9
|
+
(Range.getValue()を複数回呼び出す場合など、パフォーマンス向上目的でまとめて行うため)
|
10
10
|
|
11
|
-
Browser.msgBox()関数が呼び出されると
|
11
|
+
Browser.msgBox()関数が呼び出されるとストップしてしまうため、質問のような状態になります。
|
12
12
|
|
13
13
|
【解決策】
|
14
14
|
メッセージボックスの表示前に、
|
15
15
|
SpreadsheetApp.flush()
|
16
|
-
という関数をコールして、強制的に
|
16
|
+
という関数をコールして、保留中となっているスプレッドシートへの変更を、強制的に適用させます。
|
17
17
|
|
18
18
|
```diff
|
19
19
|
(略)
|