Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

本文說明如何使用 憑證在 Windows 上數位簽署 巨集專案。 如果您還沒有數字證書,就必須取得數字證書。

提示: 若要在自己的電腦上使用或測試宏專案,您可以使用 Selfcert.exe 工具建立自我簽署憑證。 您可以在下方找到更多詳細數據。

取得數字證書

您可以從商業證書頒發機構單位 (CA) 、內部安全性系統管理員或資訊技術 (IT) 專業人員處取得數字證書。

若要深入瞭解提供 Microsoft 產品服務的證書頒發機構單位,請參閱 Microsoft 跟證書計劃成員清單。

由於您自行建立的數位憑證,並不是由正式受信任的憑證授權單位所發行,所以使用這類憑證簽署的巨集專案,都會歸類為自我簽署專案。 Microsoft Office 信任的自我簽署憑證,僅限於自我簽署憑證已新增至 [憑證 - 目前的使用者] 儲存區中,[受信任的根憑證授權單位] 資料夾的電腦上。 這可讓您在自己的計算機或極少數的計算機上進行測試或使用,但不適合將宏項目發佈給其他人。

建立自我簽署憑證

  1. 移至 x86 (C:\Program Files) \Microsoft Office\root\Office16

    提示: 如果您在此資料夾中找不到,請嘗試 C:\Program Files\Microsoft Office\root\Office16

  2. 按一下 SelfCert.exe。 [建立數位憑證] 方塊即會顯示。

  3. [您的憑證名稱] 方塊中輸入憑證的描述性名稱。

  4. 按一下 [確定]

  5. 出現 [SelfCert 成功] 訊息時,按一下 [確定]

  1. 移至 C:\Program Files\Microsoft Office\<Office version>\

  2. 按一下 SelfCert.exe。 [建立數位憑證] 方塊即會顯示。

  3. [您的憑證名稱] 方塊中輸入憑證的描述性名稱。

  4. 按一下 [確定]

  5. 出現 [SelfCert 成功] 訊息時,按一下 [確定]

檢視個人證書存放區中的憑證

  1. 開啟 Microsoft Edge。

  2. 在網址列中輸入 edge://settings/privacy

  3. 向下卷動至 [安全 性] 區段,然後選取 [管理憑證]

在 Excel、PowerPoint、Publisher、Visio、Outlook 或 Word 中數字簽署 VBA 宏專案

  1. 開啟包含要簽署之巨集專案的檔案。

  2. [開發人員] 索引標籤上,按一下 [程式碼] 群組中的 [Visual Basic]

    附註: 如果無法使用 [開發人員] 索引標籤:按一下 [檔案] 索引標籤。 按一下 [選項]。 按一下 [自訂功能區]。 在 [自訂功能區] 清單中按一下 [開發人員],然後按一下 [確定]

  3. 在 Visual Basic 中的 [工具] 功能表上,按一下 [數位簽章]

  4. [數位簽章] 對話方塊隨即出現。

  5. 選取憑證,然後按一下 [確定]

    附註: 如果尚未選取數位憑證或想使用其他數位憑證,請按一下 [選擇]。 選取憑證,然後按一下 [確定]

在簽名中新增時間戳

當使用者執行您的 VBA 宏時,Office 會檢查簽章及其所簽章的憑證。 在簽名中加入時間戳,表示只要未撤銷憑證,即使憑證已過期,您的宏仍會被視為已簽署。 這樣可以減少對用戶的干擾。

僅過期的憑證仍可用來驗證驗證碼,只是無法用來簽署新驗證碼。

若要新增時間戳,您需要在登錄中新增三個機碼。

注意:  不正確地編輯登錄可能會嚴重損害您的系統。 在您變更登錄之前,我們建議您先備份電腦上所有的重要資料。

按鍵

類型

描述

HKCU\Software\Microsoft\VBA\Security\TimeStampURL

REG_SZ 

您慣用時間戳伺服器的 URL。 (必要)

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 編輯器 會在您數位簽署宏時自動新增時間戳。

其他附註

  • 建議您只有在解決方案已經過測試並準備發佈 之後 才簽署宏:當已簽署宏專案中的程式代碼以任何方式變更時, 就會移除其數字簽名。 不過,如果您具有之前用來在電腦上簽署該專案的有效數位憑證,當您儲存巨集專案時,將自動重新簽署。

  • 防止使用者意外變更宏專案並使簽章失效的其中一個方法是先鎖定宏專案,再套用籤章。 您的數位簽名可確保專案在您簽署后並未遭到竄改,但無法證明您是撰寫專案。 即使您鎖定了宏專案,其他使用者可能還是可以用另一個簽章取代您的簽名。 公司的系統管理員也可以重新簽署範本和載入宏,以確保只有核准的內容才會在公司計算機上執行。

  • 如果您建立將程式碼加入巨集專案的增益集,則程式碼應判斷專案是否已經過數位簽章,並且在使用者繼續執行之前告知變更已簽章專案的後果。

  • 使用商業憑證的使用者可能會因為簽入時受到支援的哈希演算法限制而遇到封鎖。 您可以新增 DWORD 登錄機碼值 V1HashEnhanced 以選擇另一個哈希演算法,在 HKCU\SOFTWARE\Microsoft\VBA\Security 與值演算法規則 (1 到 SHA1 到 SHA1 到 SHA1,2 到 SHA256,3 到 SHA384,4 到 SHA512,其他到 MD5) 。 此設定可在最新版本的CC通道中使用。

深入了解

啟用或停用 Microsoft 365 檔案中的宏

附註: 此文骯是由人員在人工智慧 (AI) 協助下建立。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×