回答編集履歴

7

不自然な文言を置き換え

2021/03/16 11:32

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- 解除するときは逆に行います。
23
+ 解除するとき以下のように行います。
24
24
 
25
25
 
26
26
 

6

間違っていると思った箇所が間違っていなかったので元に戻す

2021/03/16 11:32

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -26,9 +26,17 @@
26
26
 
27
27
  ```python
28
28
 
29
+ # 非表示のみ解除
30
+
29
31
  ws['C1'].protection = Protection(locked=True, hidden=False)
30
32
 
33
+
34
+
35
+ # 非表示・シート保護いずれも解除
36
+
37
+ ws['C1'].protection = Protection(locked=True, hidden=False)
38
+
31
- ws.protection.sheet = False # もしくは ws.protection.disable()
39
+ ws.protection.sheet = False # もしくは ws.protection.disable()
32
40
 
33
41
  ```
34
42
 

5

間違っていた箇所を訂正

2021/03/16 09:15

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -25,14 +25,6 @@
25
25
 
26
26
 
27
27
  ```python
28
-
29
- # 非表示のみ解除
30
-
31
- ws['C1'].protection = Protection(locked=True, hidden=False)
32
-
33
-
34
-
35
- # 非表示・シート保護いずれも解除
36
28
 
37
29
  ws['C1'].protection = Protection(locked=True, hidden=False)
38
30
 

4

誤解を避けるための説明文の修正

2021/03/16 08:57

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- # 保護・非表示いずれも解除
35
+ # 非表示・シート保護いずれも解除
36
36
 
37
37
  ws['C1'].protection = Protection(locked=True, hidden=False)
38
38
 

3

コードの間違いを修正

2021/03/16 08:49

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -4,7 +4,9 @@
4
4
 
5
5
  ```python
6
6
 
7
- from openpyxl import load_workbook, Protection
7
+ from openpyxl import load_workbook
8
+
9
+ from openpyxl.styles import Protection
8
10
 
9
11
  wb = load_workbook('sample.xlsx')
10
12
 

2

説明の追加、コードの回答への最適化

2021/03/16 08:41

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -24,9 +24,17 @@
24
24
 
25
25
  ```python
26
26
 
27
- ws.protection.sheet = False # もしくは ws.protection.disable()
27
+ # 非表示のみ解除
28
28
 
29
29
  ws['C1'].protection = Protection(locked=True, hidden=False)
30
+
31
+
32
+
33
+ # 保護・非表示いずれも解除
34
+
35
+ ws['C1'].protection = Protection(locked=True, hidden=False)
36
+
37
+ ws.protection.sheet = False # もしくは ws.protection.disable()
30
38
 
31
39
  ```
32
40
 

1

説明とコードを追記

2021/03/16 07:43

投稿

etherbeg
etherbeg

スコア1195

test CHANGED
@@ -29,3 +29,27 @@
29
29
  ws['C1'].protection = Protection(locked=True, hidden=False)
30
30
 
31
31
  ```
32
+
33
+
34
+
35
+ (追記)複数セルを同時に設定するときは以下のように行います。
36
+
37
+ ```python
38
+
39
+ cell_protection_settings = Protection(locked=True, hidden=True)
40
+
41
+ # C列のセルすべてに設定
42
+
43
+ for cell in ws['C']:
44
+
45
+ cell.protection = cell_protection_settings
46
+
47
+ # 'B1'〜'C3' の範囲の6つのセルに設定
48
+
49
+ for row in ws['B1':'C3']:
50
+
51
+ for cell in row:
52
+
53
+ cell.protection = cell_protection_settings
54
+
55
+ ```