![Word 365 允許巨集在唯讀/受保護視圖上執行](https://rvso.com/image/1684438/Word%20365%20%E5%85%81%E8%A8%B1%E5%B7%A8%E9%9B%86%E5%9C%A8%E5%94%AF%E8%AE%80%2F%E5%8F%97%E4%BF%9D%E8%AD%B7%E8%A6%96%E5%9C%96%E4%B8%8A%E5%9F%B7%E8%A1%8C.png)
我正在嘗試將我們公司從 Office 2019x86 升級到 Microsoft 365 x86。我們目前停留在 32 位元,因為我們的電子控製文件流程目前具有使用 32 位元 DLL 的 VBA 巨集。這些 DLL 在 VBA 巨集中使用,將新資料提取到 DOC 檔案中,並確保每次開啟時檔案中的所有內容都是準確的。
所有這些在 Office 2019 上都運作良好。對於 Office 2019,這不會阻止巨集運行。使用 M365,這些文件無法運行宏,因為它們被標記為僅供檢視。我嘗試推出強制受信任位置並信任正在運行的巨集的 GPO,但它們仍然失敗。我從 VBA 巨集中得到的錯誤如下。
Run-time error '6124': You are not allowed to edit this selection because it is protected.
'HKEY_CURRENT_USER\Software\Microsoft\Office'
我已經能夠透過刪除 中的所有註冊表項,然後重新啟動來解決此問題。使用此方法可以暫時實現預期的行為,但在隨機時間後問題會再次出現。
另一個解決方法是轉到檔案屬性並取消選取唯讀。這不是我們最終用戶的選擇,但在測試時適用於管理員。
還有哪些潛在的解決方案可以嘗試解決此問題或導致此行為的確切註冊表項/值?
答案1
作為解決方法,需要測試一些東西:更改註冊表項的所有權 HKEY_CURRENT_USER\Software\Microsoft\Office
到 TrustedInstaller 並刪除更改/寫入的權限,以防止 MS Office 弄亂它。注意在進行更改之前,請將金鑰匯出到 .reg 文件,以便更輕鬆地恢復。然後,測試再次匯出到 .reg 是否可以更改另一台 PC 上的所有權。
不過,所有權變更有一些明顯的缺點。
- 它將使得未來的更新辦公室更加困難。
- 辦公室將無法保存任何其他對該鍵的變更。嘗試縮小具體範圍子項需要保護,並僅將所有權更改為該內容。
- 如果不能使用 .reg 檔案來完成,則將其部署到許多電腦可能會很困難。
- 保留舊的 32 位元 DLL 可能會有安全性問題。
當然,更好的解決方案是聯繫原始文件合規性應用程式的供應商並取得與較新版本的 MS 相容的版本辦公室。
[順便說一句,您是否測試過替代方案辦公室, 例如自由辦公室,為了與現有的宏相容?由於在企業環境中更改應用程式套件可能不切實際,因此這將是為了滿足好奇心,並可能為軟體供應商提供更新 DLL 的動力。