之前因為老板要求,本來我手上的 Office 文件都是明碼儲存,
後來被要求要加密碼處理。
於是為了趕快把我手上幾千份文檔加密,我使用了以下的方式:
Public Sub SetDOCPassword (src_file,oldpassword,newpassword)
dim oWord
dim myDOC
set oWord = CreateObject("Word.Application")
oWord.Visible = FALSE
On Error Resume Next
set myDOC = Nothing
set myDOC =oWord.Documents.Open(src_file,FALSE,FALSE,FALSE,oldpassword)
if Not myDOC is Nothing then
oWord.DisplayAlerts = FALSE
if newpassword = "" then
myDoc.EncryptionProvider = ""
myDOC.SaveAs2 src_file,,FALSE,"",FALSE,""
else
myDOC.Password = newpassword
myDOC.Save
end if
myDOC.Close
end if
oWord.Quit
End Sub
之前一年多,不論是 .docx 或者 office 97 的 .doc 都相安無事,
使用程式加密的文件,該用 word2016 或者 word2003 開啟都可以
輸入密碼正常作業。
但是不知道經過幾個更新 之後,上個月有次重新加密的結果,
使用 word2003 開啟時輸入密碼後會出現
https://i.imgur.com/OBU8lCh.png
然後使用 word2016 開啟就相安無事。
看起來 VBSCRIPT 執行時會使用 office 2016 作為背景執行的本體。
問題:
1. 我有沒有辦法讓 VBSCRIPT 選擇使用的 office ?
2. 這是出了什麼問題會讓 office2016 加密的 office2003 檔案在
office 2003 打不開?
自己回:
office 2016 應該是被更新到使用新的 password 編碼方式,
因此就算是舊的 word 檔使用舊編碼,只要更新過就只能用新的編碼加密,
同時也別想用舊的 office 2003 開啟。
(PS: e04)
解決方法只能寫 BATCH 在使用 office 2003 開檔案前先解密編完再加密。
(PS: e04)