質問編集履歴

5

誤記

2017/03/07 04:02

投稿

igaiga
igaiga

スコア144

test CHANGED
File without changes
test CHANGED
@@ -56,8 +56,6 @@
56
56
 
57
57
  var sheets = ash.getSheets();
58
58
 
59
- var me = Session.getActiveUser();//開発アカウント以外
60
-
61
59
 
62
60
 
63
61
  for (i = 0; i < ash.getSheets().length; i++) {

4

変更

2017/03/07 04:02

投稿

igaiga
igaiga

スコア144

test CHANGED
File without changes
test CHANGED
@@ -36,9 +36,13 @@
36
36
 
37
37
 
38
38
 
39
- t_obaraさんにアドバイスいただいた方法で下記のようにしたところ、希望に近いものができました。
39
+ t_obaraさんにアドバイスいただいた方法で下記のようにしたところ、希望どおりのものができました。
40
40
 
41
+
42
+
43
+
44
+
41
- ###完成版スクリプト(保護は警告アラートのみ)
45
+ ###完成版スクリプト
42
46
 
43
47
  ```
44
48
 
@@ -52,31 +56,29 @@
52
56
 
53
57
  var sheets = ash.getSheets();
54
58
 
59
+ var me = Session.getActiveUser();//開発アカウント以外
60
+
61
+
62
+
55
63
  for (i = 0; i < ash.getSheets().length; i++) {
56
64
 
57
-
65
+ range = sheets[i].protect();
58
66
 
59
- range = sheets[i].protect();
67
+ protection = range.getUnprotectedRanges();
60
68
 
61
- protection = range.getUnprotectedRanges();
69
+ protection.push(sheets[i].getRange('A1:B5'));
62
70
 
63
- protection.push(sheets[i].getRange('G1:I5'));
71
+ protection.push(sheets[i].getRange('D1:E5'));
64
72
 
65
- protection.push(sheets[i].getRange('A10:B20'));
73
+ range.removeEditors(range.getEditors());
66
74
 
67
- range.setUnprotectedRanges(protection);
75
+ range.setUnprotectedRanges(protection);
68
-
69
- range.setWarningOnly(true);
70
-
71
-
72
76
 
73
77
  }
74
78
 
75
79
  }
76
80
 
77
81
  ```
78
-
79
-
80
82
 
81
83
 
82
84
 
@@ -90,6 +92,6 @@
90
92
 
91
93
 
92
94
 
93
- 2. 編集が一切できないようにしたい
95
+ 2. 編集が一切できないようにしたい(解決済み)
94
96
 
95
97
  protect()だとアラートが出るだけで「ok」を押すと編集できてしまいます。

3

変更

2017/03/07 03:13

投稿

igaiga
igaiga

スコア144

test CHANGED
File without changes
test CHANGED
@@ -80,22 +80,16 @@
80
80
 
81
81
 
82
82
 
83
- ###わからないのは、下記のつです。
83
+ ###わからないのは、下記のつです。
84
84
 
85
85
 
86
86
 
87
87
 
88
88
 
89
- 1. セル範囲の指定を複数設定したい
89
+ 1. セル範囲の指定を複数設定したい(解決済み)
90
90
 
91
91
 
92
92
 
93
93
  2. 編集が一切できないようにしたい
94
94
 
95
95
  protect()だとアラートが出るだけで「ok」を押すと編集できてしまいます。
96
-
97
-
98
-
99
- 3. 複数のシートに同じ保護をしたい
100
-
101
- シートは平成29年1月、平成29年2月、など年月で命名しています。

2

追記

2017/03/07 02:20

投稿

igaiga
igaiga

スコア144

test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,9 @@
34
34
 
35
35
  ```
36
36
 
37
+
37
38
 
39
+ t_obaraさんにアドバイスいただいた方法で下記のようにしたところ、希望に近いものができました。
38
40
 
39
41
  ###完成版スクリプト(保護は警告アラートのみ)
40
42
 

1

追記

2017/03/07 02:01

投稿

igaiga
igaiga

スコア144

test CHANGED
File without changes
test CHANGED
@@ -36,6 +36,46 @@
36
36
 
37
37
 
38
38
 
39
+ ###完成版スクリプト(保護は警告アラートのみ)
40
+
41
+ ```
42
+
43
+ function myFunction() {
44
+
45
+ var range;
46
+
47
+ var protection;
48
+
49
+ var ash = SpreadsheetApp.getActiveSpreadsheet();
50
+
51
+ var sheets = ash.getSheets();
52
+
53
+ for (i = 0; i < ash.getSheets().length; i++) {
54
+
55
+
56
+
57
+ range = sheets[i].protect();
58
+
59
+ protection = range.getUnprotectedRanges();
60
+
61
+ protection.push(sheets[i].getRange('G1:I5'));
62
+
63
+ protection.push(sheets[i].getRange('A10:B20'));
64
+
65
+ range.setUnprotectedRanges(protection);
66
+
67
+ range.setWarningOnly(true);
68
+
69
+
70
+
71
+ }
72
+
73
+ }
74
+
75
+ ```
76
+
77
+
78
+
39
79
 
40
80
 
41
81
  ###わからないのは、下記の3つです。