本文提供協助來解決非系統管理員體驗的使用者Microsoft Visual Basic for Applications (VBA) 許可權問題。
重要
本文包含如何修改「登錄檔」的相關資訊。 修改登錄之前,請務必先備份, 並了解如何在發生問題時還原登錄。 如需如何備份、還原及修改登錄的詳細資訊,請參閱 進階使用者的 Windows 登錄資訊。
適用於: Microsoft Dynamics GP
原始 KB 編號: 929612
徵兆
在 Microsoft Dynamics GP 中,使用者會遇到下列一或多個問題:
- Microsoft Dynamics GP 不會連結至 Microsoft Visual Basic for Applications (VBA) 編輯器。
- Microsoft Dynamics GP 不會將 windows 或字段從 Microsoft Dynamics GP 複製到 VBA 中的 Microsoft Dynamics GP 專案。
- Microsoft Dynamics GP 不會執行現有的 VBA 程序代碼。 此外,Microsoft Dynamics GP 不會在終端機伺服器或 Citrix 中執行程序代碼。
此外,Microsoft Dynamics GP 安裝期間沒有錯誤訊息。
注意
VBA 會在 Microsoft Dynamics GP 安裝期間安裝。
原因
發生此問題的原因是用戶沒有計算機或網域的系統管理認證。
解決方法
警告
使用註冊表編輯器或其他方法不正確地修改註冊表可能會導致嚴重問題。 這些問題可能需要您重新安裝操作系統。 Microsoft cannot guarantee that these problems can be solved. 修改登錄的風險請自負。
若要解決這個問題,請使用下列其中一個方法。
方法 1
針對您嘗試使用 VBA 的計算機,您應該以系統管理員本地組成員或 Power Users 本地組成員的使用者身分登入。 您可以編輯電腦上的登錄,以啟用其他使用者的 VBA 存取權。 不過,建議的解決方案是將使用者包含在兩個本地組中的至少一個。 啟用其他使用者 VBA存取的建議修改如下。
注意
在此程式中,您將修改下列登錄機碼:
HKEY_CLASSES_ROOT\Clsid
HKEY_CLASSES_ROOT\Typelib
HKEY_CLASSES_ROOT\Interface
HKEY_LOCAL_MACHINE\Software\Classes\CLSID
若要授與登錄機碼的許可權,請遵循下列步驟:
以系統管理員身分登入。
啟動 [登錄編輯程式]。 若要這樣做,請按兩下 [開始],按兩下 [執行],輸入regedt32.exe,然後按兩下 [確定]。
找出下列登入機碼:
HKEY_CLASSES_ROOT\Clsid
在 [ 安全性] 功能表上,按兩下 [ 許可權]。
注意
[登錄機碼許可權] 視窗出現。
按兩下 [新增]、新增使用者或群組,然後按下以選取 [完全控制 ] 複選框來指定存取類型。
按兩下 [ 確定 ] 關閉 [登錄機碼許可權] 視窗。
針對其餘登錄機碼重複步驟 3 到 6。
結束登錄編輯程式。
注意
當您結束註冊表編輯器時,您變更許可權的其他使用者可以註冊類型庫、元件物件模型 (COM) 物件和其他物件。
方法 2
注意
下列步驟尚未經過廣泛測試。 我們能夠以非系統管理使用者身分成功執行 Microsoft Dynamics GP 與 VBA。 自 Microsoft Dynamics GP 9.0 Service Pack 1 (SP1) 開始,您可以讓所有使用者擁有 VBA 功能,而不需要公開任何登錄機碼。
若要讓所有使用者使用 VBA 函式而不公開任何登錄機碼,請遵循下列步驟:
以系統管理員身分登入。
啟動 Microsoft Dynamics GP、啟動 VBA 編輯器,然後結束 Microsoft Dynamics GP。
搜尋位於下列位置的 Controls.exd 檔案:
\Documents and Settings\username\Local Settings\Temp\Dynamics9.0
將此檔案複製到所有使用者都可以存取的位置。 例如,將檔案複製到下列位置:
\Documents and Settings\All Users\DynamicsVBA
按一下 [ 開始],按一下 [ 執行],輸入以下內容,然後按一下 [ 確定]:
regtlib.exe "C:\Documents and Settings\All Users\DynamicsVBA\Controls.exd
使用 RptControls.exd 檔案重複步驟 3 和 4。
注意
只有在 VBA 檔案包含報表修改時,才會存在此檔案。
在下列位置搜尋 MSForms.exd 檔案:
\Documents and Settings\username\Local Settings\Temp\VBE
如果此檔案存在,請使用 RptControls.exd 檔案重複步驟 4。
注意
只有當 VBA 檔案包含使用者表單時,才會存在此檔案。
此時,非系統管理使用者應該能夠執行 VBA 程式代碼,而不授與任何登錄機碼的存取權。 不過,您可能必須先刪除 Controls.exd 檔案、RptControls.exd 檔案和 MSForms.exd 檔案。
注意
每次當 VBA 專案有變更時,不論是透過使用 VBA 編輯器、匯入套件檔案,還是將不同的 VBA 檔案放入程式碼資料夾中,都必須重複這些步驟。