質問編集履歴
2
質問内容に進展があったため共有
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
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で実現したいと考えています。
|