回答編集履歴
2
誤字を修正
test
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
検証してみました。
|
38
38
|
|
39
|
-
文書を変更してから元のファイルを上書きするように、コードを改変しました。実行すると、ファイルが更新され、パスワードも解除されることが確認でき、仮
|
39
|
+
文書を変更してから元のファイルを上書きするように、コードを改変しました。実行すると、ファイルが更新され、パスワードも解除されることが確認でき、仮説が正しいことが実証できました。
|
40
40
|
|
41
41
|
```Python
|
42
42
|
rng = doc.Range(0, 1)
|
1
補足説明の表現を修正
test
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
パスワードに空文字列を設定し、別ファイルとして保存することで、ファイルを開くためのパスワードを解除できました。
|
2
2
|
|
3
3
|
検証したコードです。※事前にunlockedフォルダを作成しておく必要があります
|
4
|
+
|
5
|
+
# 解決策
|
4
6
|
|
5
7
|
```Python
|
6
8
|
import win32com.client
|
@@ -22,11 +24,19 @@
|
|
22
24
|
doc.Close()
|
23
25
|
word.Quit()
|
24
26
|
```
|
27
|
+
|
25
28
|
[Document.SaveAs2 メソッド (Word) | Microsoft Learn](https://learn.microsoft.com/ja-jp/office/vba/api/word.saveas2)
|
29
|
+
|
30
|
+
# 補足説明
|
31
|
+
質問者さんが提示したコードでは、パスワードが解除されない原因を説明します。
|
26
32
|
|
27
33
|
元のファイルを上書きしようとしてもパスワード解除が反映されないのは、ファイルが更新されないからです。スクリプト実行後もファイル更新日時に変更がないことから、更新されていないことがわかります。
|
28
34
|
|
35
|
+
仮説:ファイルが更新されれば、パスワードも解除されるのでは?
|
36
|
+
|
37
|
+
検証してみました。
|
38
|
+
|
29
|
-
|
39
|
+
文書を変更してから元のファイルを上書きするように、コードを改変しました。実行すると、ファイルが更新され、パスワードも解除されることが確認でき、仮設が正しいことが実証できました。
|
30
40
|
|
31
41
|
```Python
|
32
42
|
rng = doc.Range(0, 1)
|
@@ -36,5 +46,5 @@
|
|
36
46
|
doc.SaveAs2(locked, None, None, "")
|
37
47
|
```
|
38
48
|
|
39
|
-
しかし、文書を変更することは、質問者さんの意にそぐわないと思われるため、別ファイルとして保存することが
|
49
|
+
しかし、文書を変更することは、質問者さんの意にそぐわないと思われるため、先に提示したとおり、別ファイルとして保存することが解決策になります。
|
40
50
|
|