After an Office 365 update, your custom ribbon tab created with VBA may disappear. This happens because updates can reset or modify the ribbon customization storage in the Windows Registry. This article explains why the update breaks the custom tab and provides a reliable method to restore it using both VBA code and manual registry editing.
Key Takeaways: Restoring a Missing VBA Custom Ribbon Tab After an Office Update
- VBA Ribbon XML in the Normal.dotm template: The custom tab definition must be stored in Normal.dotm for it to survive updates and user profile resets.
- Registry key HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Options: If the key is missing or corrupted, the custom tab will not load; restoring or recreating it fixes the issue.
- File > Options > Add-ins > Manage COM Add-ins > Go: Verify that the VBA project add-in is enabled; a disabled add-in blocks the custom ribbon from appearing.
Why Office 365 Updates Cause Custom Ribbon Tabs to Disappear
Office 365 updates often reset the user profile or modify the registry entries that store ribbon customizations. Word loads custom ribbon tabs from the CustomUI element inside a VBA project. This project is typically stored in the Normal.dotm global template. When an update runs, it may replace Normal.dotm with a fresh version, removing your VBA code and the ribbon XML that defines the custom tab.
Additionally, the update can delete or corrupt the registry key that tells Word to load the VBA project add-in. Without that key, Word ignores your custom ribbon code entirely. The problem is not that the VBA code is wrong — it is that the infrastructure Word uses to load it has been altered.
The Role of the Normal.dotm Template
Normal.dotm is the default global template that loads every time Word starts. Any VBA code stored in its ThisDocument module with a CustomUI ribbon XML callback is applied to all documents. If the update replaces Normal.dotm, your custom ribbon tab disappears because the XML is no longer present.
The Registry Key That Controls VBA Add-in Loading
Word checks the registry key HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Options for a string value named DefaultGlobalDotName. If this value is missing or points to a file that does not exist, Word falls back to a fresh Normal.dotm without your customizations. The update may also delete the VBAProject subkey that enables the VBA project add-in.
Steps to Restore the Missing Custom Ribbon Tab
Follow these steps in order. You will need to recreate the ribbon XML in Normal.dotm and repair the registry key if needed.
- Open the VBA Editor and check Normal.dotm
Press Alt+F11 to open the VBA editor. In the Project Explorer, expand Normal and double-click ThisDocument. Look for existing ribbon XML code. If the module is empty, proceed to step 2. If the code is present, skip to step 3. - Insert the custom ribbon XML code into Normal.dotm
In the ThisDocument code window, paste your original ribbon XML inside theCustomUIcallback. The code must use theIRibbonUIinterface. A typical example:Private Sub Document_Open() ' Ribbon XML is stored in the CustomUI element End Sub '#Region "Ribbon XML" ' Paste your XML here '#End RegionSave Normal.dotm by clicking File > Save Normal.dotm.
- Verify the VBA project add-in is enabled
In Word, go to File > Options > Add-ins. At the bottom, next to Manage, select COM Add-ins and click Go. Ensure VBA Project is checked. If it is missing, click Add, navigate toC:\Program Files\Microsoft Office\root\Office16\VBAProject.dll, and add it. - Repair the registry key for the global template
Press Win+R, typeregedit, and press Enter. Navigate toHKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Options. Right-click in the right pane, select New > String Value, name itDefaultGlobalDotName, and set its value toNormal.dotm. Close the Registry Editor. - Restart Word and test the custom tab
Close Word completely. Open Word again. Your custom ribbon tab should appear. If it does not, repeat steps 3 and 4, then restart your computer.
If the Custom Tab Still Does Not Appear
If the main fix did not work, one of these related issues may be blocking the custom ribbon tab.
Word Disables VBA Macros After the Update
Office 365 updates sometimes change the macro security settings. Go to File > Options > Trust Center > Trust Center Settings > Macro Settings. Select Enable all macros (not recommended for long-term use) or Enable VBA macros (not recommended, potentially dangerous code can run). Click OK and restart Word.
The Custom Ribbon XML Contains an Error
An invalid XML attribute or missing callback procedure prevents the ribbon from loading. In the VBA editor, press Ctrl+G to open the Immediate window. Type Debug.Print Application.CommandBars.GetPressedMso "RibbonXML" and press Enter. If you see an error message, fix the XML syntax. Common errors include mismatched tags or incorrect onAction callback names.
Another Add-in Conflicts With the Custom Ribbon
Third-party add-ins can override custom ribbon tabs. Start Word in safe mode by pressing Ctrl and double-clicking the Word icon. Click Yes when prompted. If the custom tab appears in safe mode, disable add-ins one by one in File > Options > Add-ins > Manage COM Add-ins > Go until you identify the conflict.
Comparison of Methods to Store Custom Ribbon XML
| Item | Normal.dotm (Recommended) | Document-Specific VBA |
|---|---|---|
| Persistence after Office update | Survives if template is not replaced | Lost if document is not opened |
| Scope of custom tab | Available in all documents | Only in that specific document |
| Registry dependency | Requires DefaultGlobalDotName key | No registry dependency |
| Ease of backup | Back up Normal.dotm file | Back up the .docm file |
Storing the ribbon XML in Normal.dotm is the most reliable method for a custom tab that must survive Office updates. Document-specific storage is simpler but does not provide global access.
You can now restore a missing custom ribbon tab by recreating the XML in Normal.dotm, enabling the VBA project add-in, and repairing the registry key. After the fix, back up your Normal.dotm file to a safe location. As an advanced tip, use the IRibbonUI.Invalidate method in your VBA code to force the ribbon to reload after any update, preventing the tab from disappearing again.