本文說明如何透過憑證在 Windows 上數位簽署巨集專案。 如果你還沒有數位證書,就必須取得。
秘訣
若要在自己的電腦上使用或測試巨集專案,您可以使用 Selfcert.exe 工具建立自簽憑證。 你會在下面找到更多相關細節。
取得數位證書
您可以從商業憑證授權機構 (加州) 、內部安全管理員,或資訊科技 (資訊) 專業人士處取得數位憑證。
欲了解更多提供 Microsoft 產品服務的憑證機構,請參閱 Microsoft 根憑證計畫成員名單。
使用自簽憑證
由於您自行建立的數位憑證,並不是由正式受信任的憑證授權單位所發行,所以使用這類憑證簽署的巨集專案,都會歸類為自我簽署專案。 Microsoft Office 只會信任已將自簽憑證加入「 憑證 - 目前使用者」儲存資料夾中自簽憑證的電腦。 這讓它適合在自己的電腦或管理的少數機器上測試或使用,但不太適合將巨集專案分配給其他人。
建立自我簽署憑證
您目前使用的是哪個版本的 Windows?
Windows 10 或更新版本
請到 C:\Program Files (x86) \Microsoft Office\root\Office16。
秘訣
如果在這個資料夾找不到,試試 C:\Program Files\Microsoft Office\root\Office16
按一下 SelfCert.exe。 [建立數位憑證] 方塊即會顯示。
在 [您的憑證名稱] 方塊中輸入憑證的描述性名稱。
按一下 [確定]。
出現 [SelfCert 成功] 訊息時,按一下 [確定]。
Windows 8
- 請前往 C:\Program Files\Microsoft Office\<Office 版本>\。
- 按一下 SelfCert.exe。 [建立數位憑證] 方塊即會顯示。
- 在 [您的憑證名稱] 方塊中輸入憑證的描述性名稱。
- 按一下 [確定]。
- 出現 [SelfCert 成功] 訊息時,按一下 [確定]。
在個人憑證商店查看該憑證
- 開啟 Microsoft Edge。
- 在網址欄輸入 edge://settings/privacy 。
- 往下滑到 安全性 區塊,選擇 管理憑證。
在 Excel、PowerPoint、Publisher、Visio、Outlook 或 Word 中數位簽署 VBA 巨集專案
開啟包含要簽署之巨集專案的檔案。
在 [開發人員] 索引標籤上,按一下 [程式碼] 群組中的 [Visual Basic]。
注意
如果開發者標籤無法開啟:點擊 檔案 標籤。點擊 選項。 按一下 [自訂功能區]。 在 [自訂功能區] 清單中按一下 [開發人員],然後按一下 [確定]。
在 Visual Basic 中的 [工具] 功能表上,按一下 [數位簽章]。
[數位簽章] 對話方塊隨即出現。
選取憑證,然後按一下 [確定]。
注意
如果尚未選取數位憑證或想使用其他數位憑證,請按一下 [選擇]。 選取憑證,然後按一下 [確定]。
在簽名上加個時間戳記
當有人執行你的 VBA 巨集時,Office 會檢查簽名和簽署時使用的憑證。 在簽名上加上時間戳記,即使憑證過期,只要憑證沒有被撤銷,巨集仍會被視為已簽署。 這能減少對使用者的干擾。
僅僅過期的憑證仍可用來驗證程式碼,但無法用來簽署新程式碼。
要新增時間戳記,你需要在登錄檔中加入三個鍵。
注意
不正確地編輯登錄可能會嚴重損害您的系統。 在您變更登錄之前,我們建議您先備份電腦上所有的重要資料。
| 按鍵 | 類型 | 描述 |
|---|---|---|
| HKCU\Software\Microsoft\VBA\Security\TimeStampURL | REG_SZ | 你偏好的時間戳伺服器網址。 (必須) |
| HKCU\Software\Microsoft\VBA\Security\TimeStampRetryCount | REG_DWORD | Visual Basic 編輯器嘗試連線時間戳記伺服器的次數,直到失敗。 (可選 - 如果你沒有設定,Visual Basic 編輯器只會嘗試聯絡伺服器一次) |
| HKCU\Software\Microsoft\VBA\Security\TimeStampRetryDelay | REG_DWORD | (秒數以毫秒計,) Visual Basic 編輯器會在重新嘗試連接時間戳伺服器之間等待。 (可選 - 如果你沒設定這個,重試之間不會有延遲) |
一旦你新增了可用的 TimeStampURL 項目,Visual Basic 編輯器會在你數位簽署巨集時自動新增時間戳記。
其他附註
- 建議只有 在 解決方案測試完並準備發佈後才簽署巨集:當簽署巨集專案中的程式碼被更改時, 其數位簽章會被移除。 不過,如果您具有之前用來在電腦上簽署該專案的有效數位憑證,當您儲存巨集專案時,將自動重新簽署。
- 防止使用者意外更改你的巨集專案並使簽名失效的一種方法是,在套用簽名前鎖定巨集專案。 你的數位簽名確保專案自你簽署以來沒有被竄改,但並不代表你寫了這個專案。 即使你鎖定了巨集專案,其他使用者仍可能用另一個簽章替換你的簽名。 企業管理員也可以重新簽署範本和外掛,確保只有經過核准的內容在公司電腦上執行。
- 如果您建立將程式碼加入巨集專案的增益集,則程式碼應判斷專案是否已經過數位簽章,並且在使用者繼續執行之前告知變更已簽章專案的後果。
- 使用商業憑證的使用者可能會因簽署時支援的雜湊演算法限制而遭遇封鎖。 你可以在 HKCU\SOFTWARE\Microsoft\VBA\Security 下新增 DWORD 登錄檔鍵值 V1HashEnhanced 來選擇另一個雜湊演算法,並使用值演算法規則 (1 到 SHA1,2 到 SHA256,3 到 SHA384,4 到 SHA512,其他規則則是 MD5) 。 此設定可在最新版本的 CC 通道中使用。
深入了解
注意
此文骯是由人員在人工智慧 (AI) 協助下建立。