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

質問編集履歴

5

誤記

2017/03/07 04:02

投稿

igaiga
igaiga

スコア144

title CHANGED
File without changes
body CHANGED
@@ -27,7 +27,6 @@
27
27
  var protection;
28
28
  var ash = SpreadsheetApp.getActiveSpreadsheet();
29
29
  var sheets = ash.getSheets();
30
- var me = Session.getActiveUser();//開発アカウント以外
31
30
 
32
31
  for (i = 0; i < ash.getSheets().length; i++) {
33
32
  range = sheets[i].protect();

4

変更

2017/03/07 04:02

投稿

igaiga
igaiga

スコア144

title CHANGED
File without changes
body CHANGED
@@ -17,32 +17,33 @@
17
17
  }
18
18
  ```
19
19
 
20
- t_obaraさんにアドバイスいただいた方法で下記のようにしたところ、希望に近いものができました。
20
+ t_obaraさんにアドバイスいただいた方法で下記のようにしたところ、希望どおりのものができました。
21
+
22
+
21
- ###完成版スクリプト(保護は警告アラートのみ)
23
+ ###完成版スクリプト
22
24
  ```
23
25
  function myFunction() {
24
26
  var range;
25
27
  var protection;
26
28
  var ash = SpreadsheetApp.getActiveSpreadsheet();
27
29
  var sheets = ash.getSheets();
30
+ var me = Session.getActiveUser();//開発アカウント以外
31
+
28
32
  for (i = 0; i < ash.getSheets().length; i++) {
29
-
30
- range = sheets[i].protect();
33
+ range = sheets[i].protect();
31
- protection = range.getUnprotectedRanges();
34
+ protection = range.getUnprotectedRanges();
32
- protection.push(sheets[i].getRange('G1:I5'));
35
+ protection.push(sheets[i].getRange('A1:B5'));
33
- protection.push(sheets[i].getRange('A10:B20'));
36
+ protection.push(sheets[i].getRange('D1:E5'));
37
+ range.removeEditors(range.getEditors());
34
- range.setUnprotectedRanges(protection);
38
+ range.setUnprotectedRanges(protection);
35
- range.setWarningOnly(true);
36
-
37
39
  }
38
40
  }
39
41
  ```
40
42
 
41
-
42
43
  ###わからないのは、下記の2つです。
43
44
 
44
45
 
45
46
  1. セル範囲の指定を複数設定したい(解決済み)
46
47
 
47
- 2. 編集が一切できないようにしたい
48
+ 2. 編集が一切できないようにしたい(解決済み)
48
49
  protect()だとアラートが出るだけで「ok」を押すと編集できてしまいます。

3

変更

2017/03/07 03:13

投稿

igaiga
igaiga

スコア144

title CHANGED
File without changes
body CHANGED
@@ -39,13 +39,10 @@
39
39
  ```
40
40
 
41
41
 
42
- ###わからないのは、下記のつです。
42
+ ###わからないのは、下記のつです。
43
43
 
44
44
 
45
- 1. セル範囲の指定を複数設定したい
45
+ 1. セル範囲の指定を複数設定したい(解決済み)
46
46
 
47
47
  2. 編集が一切できないようにしたい
48
- protect()だとアラートが出るだけで「ok」を押すと編集できてしまいます。
48
+ protect()だとアラートが出るだけで「ok」を押すと編集できてしまいます。
49
-
50
- 3. 複数のシートに同じ保護をしたい
51
- シートは平成29年1月、平成29年2月、など年月で命名しています。

2

追記

2017/03/07 02:20

投稿

igaiga
igaiga

スコア144

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,8 @@
16
16
  protection.setDescription('保護1');
17
17
  }
18
18
  ```
19
+
19
-
20
+ t_obaraさんにアドバイスいただいた方法で下記のようにしたところ、希望に近いものができました。
20
21
  ###完成版スクリプト(保護は警告アラートのみ)
21
22
  ```
22
23
  function myFunction() {

1

追記

2017/03/07 02:01

投稿

igaiga
igaiga

スコア144

title CHANGED
File without changes
body CHANGED
@@ -17,7 +17,27 @@
17
17
  }
18
18
  ```
19
19
 
20
+ ###完成版スクリプト(保護は警告アラートのみ)
21
+ ```
22
+ function myFunction() {
23
+ var range;
24
+ var protection;
25
+ var ash = SpreadsheetApp.getActiveSpreadsheet();
26
+ var sheets = ash.getSheets();
27
+ for (i = 0; i < ash.getSheets().length; i++) {
28
+
29
+ range = sheets[i].protect();
30
+ protection = range.getUnprotectedRanges();
31
+ protection.push(sheets[i].getRange('G1:I5'));
32
+ protection.push(sheets[i].getRange('A10:B20'));
33
+ range.setUnprotectedRanges(protection);
34
+ range.setWarningOnly(true);
35
+
36
+ }
37
+ }
38
+ ```
20
39
 
40
+
21
41
  ###わからないのは、下記の3つです。
22
42
 
23
43