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

質問編集履歴

2

質問内容に進展があったため共有

2015/07/16 08:27

投稿

tetu
tetu

スコア44

title CHANGED
File without changes
body CHANGED
@@ -12,6 +12,7 @@
12
12
  下記参考スクリプトで実現できそうなのですが、間違っていますでしょうか?
13
13
  ご教示のほど宜しくお願いいたします。
14
14
 
15
+ ```ここに言語を入力
15
16
  // Protect range A1:B10, then remove all other users from the list of editors.
16
17
  var ss = SpreadsheetApp.getActive();
17
18
  var range = ss.getRange('A1:B10');
@@ -24,4 +25,42 @@
24
25
  protection.removeEditors(protection.getEditors());
25
26
  if (protection.canDomainEdit()) {
26
27
  protection.setDomainEdit(false);
27
- }
28
+ }
29
+ ```
30
+
31
+
32
+ **※追記 2015/07/16**
33
+
34
+ 少し進展がありましたので共有させていただきます。
35
+
36
+
37
+ 下記参考スクリプトから、
38
+
39
+ ```ここに言語を入力
40
+ var ss = SpreadsheetApp.getActive();
41
+ var range = ss.getRange('A1:B10');
42
+ var protection = range.protect().setDescription('Sample protected range');
43
+ var me = Session.getEffectiveUser(); //※①
44
+ protection.addEditor(me); //※②
45
+ protection.removeEditors(protection.getEditors());
46
+ if (protection.canDomainEdit()) {
47
+ protection.setDomainEdit(false);
48
+ }
49
+ ```
50
+
51
+ 「※①」と「※②」を省くことで、私のやりたいこと(オーナー以外の編集者の編集権限を無効(削除))が実現できました。
52
+
53
+
54
+ しかし、以下の条件でまだ不十分です。
55
+
56
+ 【仮条件】
57
+ スプレッドシートは、スプレッドシートのオーナー、Aさん、Bさんの3名で共有(編集者権限有り)
58
+
59
+ 【3名のスクリプト実行結果】
60
+ オーナー :オーナー以外の編集者権限を無効(削除)に成功
61
+ Aさん :Bさんだけ編集者権限が無効(削除)(オーナーとAさんは編集者権限有り)
62
+ Bさん :Aさんだけ編集者権限が無効(削除)(オーナーとBさんは編集者権限有り)
63
+
64
+ 上記結果のとおり、オーナー以外の編集者に編集者権限が残ってしまうケースが存在してしまいます。
65
+
66
+ したがいまして、誰が実行してもオーナー以外の編集者の編集権限を無効(削除)にできる方法があればご教示ください。

1

2015/07/16 08:27

投稿

tetu
tetu

スコア44

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- 解決済みの質問(https://teratail.com/questions/5029)の応用編です。
1
+ 解決済みの質問(https://teratail.com/questions/5029)の応用編です。
2
2
 
3
3
  【やりたいこと】
4
4
  複数人で共有(編集者権限を有する)しているGoogleスプレッドシートで、特定範囲のセルを保護し、かつそのスプレッドシートのオーナー以外の編集者はその保護された範囲の編集権限は無効に(削除)する設定をGASで実現したいと考えています。