Microsoft 12/9/2014 Update Breaks ActiveX Controls Fix

If some of your interactive, macro-enabled Excel files suddenly started crashing for no reason after you've installed some Microsoft updates released on 12/9/2014, this Excel tool could fix the problem. If you're running Excel 2013 and the tool fails to fix the problem, please see the Office 2013 Fix below.

Tested: Excel 2007 on Windows 7, Excel 2010 on Windows 7

The Issue and Fix

On 12/9/14 Microsoft released some Windows and Office updates. One of the updates (I haven't been able to pinpoint the culprit yet) broke the ActiveX controls in Excel - those text boxes, buttons, combo boxes, and other controls that make your spreadsheets interactive. '438' run-time errors start cropping up in spreadsheets that use to work before.

Or when you try inserting one of these ActiveX controls , you get a "Cannot insert object" error.

If you're getting these error messages recently (the date I wrote this is 12/12/2014), then it's likely that you've been affected by the Microsoft updates. According to the information posted on stackoverflow.com and excelmatters.com, you can try deleting the MSForms.exd files just once in the temporary folders when Excel is closed, and the issue most likely will go away.

C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd

C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd

The MSForms.exd files are in a hidden folder, and locating them could be tricky for some users. So I created this tool that would automatically rename the MSForms.exd files in the hidden folders, which also can fix the issue. Automatically deleting the MSForms.exd files was not possible because that required Excel to be closed; however, automatically renaming them can achieve the same effect. Download the tool at the beginning of this page, click on the Fix ActiveX Controls button, and restart Excel. The issue should be fixed, and your spreadsheets should work again.

Office 2013 Fix

If you're running Excel 2013 and removing the MSForms.exd files did not resolve the issue, try removing the offending Office update KB2726958.

Control Panel > Programs > Under Programs and Features: View installed updates > Select the Update KB2726958 for Office 2013 > Uninstall

If you were not able to locate the offending update KB2726958, you can try reverting the current version of Office 2013 to the version right before the update by following these instructions from Microsoft. Based on the instructions, I created a script to simplify the process of launching the repair program that reverts Office 2013 to version 15.0.4667.1002, the November 2014 version (list of all versions).

  1. Download the Repair_Office_2013_to_15.0.4667.1002.zip script, unzip it, and run it. The script will launch the Office 2013 repair program.
    You may get a warning from the browser when downloading the script. You can create the same script by copying and pasting the code below into a text file, and then saving the text file with a .bat extension.
    @echo off

    IF EXIST "%programfiles%\Microsoft Office 15\ClientX86\officec2rclient.exe" (
    "%programfiles%\Microsoft Office 15\ClientX86\officec2rclient.exe" /update user updatetoversion=15.0.4667.1002
    )

    IF EXIST "%programfiles%\Microsoft Office 15\ClientX86\integratedoffice.exe" (
    "%programfiles%\Microsoft Office 15\ClientX86\integratedoffice.exe" REPAIRUI RERUNMODE version=15.0.4667.1002
    )

    IF EXIST "%programfiles%\Microsoft Office 15\ClientX64\officec2rclient.exe" (
    "%programfiles%\Microsoft Office 15\ClientX64\officec2rclient.exe" /update user updatetoversion=15.0.4667.1002
    )

    IF EXIST "%programfiles%\Microsoft Office 15\ClientX64\integratedoffice.exe" (
    "%programfiles%\Microsoft Office 15\ClientX64\integratedoffice.exe" REPAIRUI RERUNMODE version=15.0.4667.1002
    )

  2. When the repair dialog box appears, click Online Repair. Then click Repair and then Repair again.
  3. Temporarily disable Office automatic updates until Microsoft addresses this problem.
    Start Excel > File > Account > Under Production Information: Update Options and then Disable Updates
  4. Create a reminder to re-enable Office 2013 automatic updates.

Imperfect Solution For Developers: VBA Code

If you're a developer who simply cannot reach into all your clients' computers, you can insert the following VBA code into the spreadsheet you're working on or distributing. The VBA code is essentially the code behind the tool I created that attempts to rename the MSForms.exd files. Add the VBA code to your spreadsheets, and your spreadsheets will be "immune" to the Microsoft Updates.

Copy and paste the following VBA code into any module in the spreadsheet.

Public Sub RenameMSFormsFiles()
    
Const tempFileName As String = "MSForms - Copy.exd" 
    
Const msFormsFileName As String = "MSForms.exd" 
    
On Error Resume Next
     
    
'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd file 
    
RenameFile Environ("TEMP") & "\Excel8.0\" & msFormsFileName, Environ("TEMP") & "\Excel8.0\" & tempFileName 
    
'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd file 
    
RenameFile Environ("TEMP") & "\VBE\" & msFormsFileName, Environ("TEMP") & "\VBE\" & tempFileName 
End Sub 

Private Sub RenameFile(fromFilePath As String, toFilePath As String)
    
If CheckFileExist(fromFilePath) Then
        
DeleteFile toFilePath 
        
Name fromFilePath As toFilePath 
    
End If 
End Sub 

Private Function CheckFileExist(path As String) As Boolean
    
CheckFileExist = (Dir(path) <> "") 
End Function 

Private Sub DeleteFile(path As String)
    
If CheckFileExist(path) Then
        
SetAttr path, vbNormal 
        
Kill path 
    
End If 
End Sub 

Call the RenameMSFormsFiles subroutine at the very beginning of the Workbook_Open event.

Private Sub Workbook_Open()
    
RenameMSFormsFiles 
End Sub

The spreadsheet will try to rename the MSForms.exd files when it opens. Obviously, this is not a perfect fix:

1. The affected user will still experience ActiveX control errors when running the VBA code the very first time opening the spreadsheet. Only after executing the VBA code once and restarting Excel, the issue is fixed. Normally when a user encounters a broken spreadsheet, the knee-jerk reaction is to close Excel and try to open the spreadsheet again. :)

2. The MSForms.exd files are renamed every time the spreadsheet opens, even when there's no problem with the MSForms.exd files. But the spreadsheet will work just fine regardless whether the machine running the spreadsheet has applied the Microsoft update or not.

At least for now, developers can continue to distribute their work with this workaround until Microsoft releases a fix.

Feedback

Hopefully the solution has saved you hours of frantic searching on the web. If this solution was able to help you resolve the issue, let me know which versions of Windows and Excel you're running so I can update the information on this page. I simply haven't had the chance to test the solution on all combinations of Windows and Excel. And if you have a more elegant VBA solution, please share!

44 Responses to “Microsoft Update Breaks Excel ActiveX Controls Fix”

  1. Paolo Peretti says:

    I’m not a developer, but I write code sometimes. I had the problem for the bug of 09/12/2014. With your help now i can work again. Thank you very much and sorry for my bad english.

  2. Thank you so much for your help, Microsoft support was no help at all. You guys are the best!

  3. Thank for the solution – I have just started developing with VBA this past 6 months and just spend a better part of day trying to find a solution – so again thank you very much

  4. I have been suffering this sames problem and have yet you find a solution that works for me. Of the two .exd files listed I only have the one contained in the excel8.0 folder. The VBE folder is empty. To be on the safe side I deleted the whole folder. I’ve also downloaded the excel sheet with the macro already in it, and ran that. After closing and restarting excel I’ve had no luck. Ideas?

    • There has been instances in which removing the MSForms.exd files does not fix the problem in Office 2013. If you’re using Office 2013, perhaps try removing the update KB2920734.

  5. For Office 2010, I believe the update is KB2553154.

  6. Harry Simel says:

    I spend a good portion of my workday using Excel, and I have to say that this is an elegant, fool-proof solution to the ActiveX break. Thanks!

  7. Thank you so much for this solution!

  8. Hey! I’ve gotten this same bug. While I fixed most of it by just deleting the .exd files, there’s another problem I’ve somehow fished up. See, our company runs two different Excels, one on our local drive another Excel application through a cloud client.

    When I save files from the cloud and open them up locally, everything is fine. However, when I save files locally and reopen them on the cloud version of Excel, all the ActiveX controls stop functioning, and even when I switch out the ActiveX controls to Form Buttons, I get errors when I try to use code such as:

    Worksheets(1).Cells.Delete shift:=xlUp

    I figured the sheets were corrupted, so a quick fix would be to just make a copy of the sheet, delete the old, and use the new. However, when trying to delete that sheet, Excel just crashes and I’m left with colleagues unsatisfied with the notion that they should make a copy of the sheet, and rename the old one to something else as a temporary fix.

    I assume the problems I’m having are related with the ones that have to do with this bug, since everything was working perfectly before this. Any ideas? I plan on just calling the company that provides us the external IT, but I’m wondering if there’s a practical solution elsewhere. :(

    • Dear Kevin.

      I succesfuly (thanks for the rollback / update revert script!) managed to get back to the version of november.

      But I now have the exact same problem as you have

      All files that were saved with the office version AFTER the update seem to be corrupt. Versions that were saved before the update can be opened flawlessly.

      Code bugs on simple things such as e.g. sheets(2).activate

      Even worse: i cannot delete the activex objects: excel immediately crashes.

      Ticking on the additional security to disable macros and first deleting the activexobjects also does not work. Only after deleting the sheets that contained activex objects functionality gets restored (but you lost your sheets :'( )

  9. Jose Dillon says:

    Update
    It seems that MS released the fix for symptom 1. This fix deletes the .exd files.

    http://support.microsoft.com/kb/3025036/EN-US
    Fix this problem
    Microsoft Fix it 51029

    I have not tested the fix yet, since I deleted the files manually.

    So, apparently this would be sufficient for now.

    Cheers,
    Jose

  10. Annie Hartz says:

    Have the same problem in Excel 2013, but none of the KB numbers appear on my update list. I run Windows 7 64-bit version. Is there a different number for this setup? deleting the *.exd files didn’t work for me. I repaired my sisters 2007 version last week by deleting update KB2553154 which worked perfectly.

  11. Thanks a lot!

  12. Yi’s excellent fix is good for Excel 2007 and 2010, but not for Excel 2013. For 2013 you will need to actually uninstall the offending update which is KB2726958. But, this will only work if you are using the MSI version of the program (Office installed from a CD). If you are using the Click-to-Run version (installed from the internet) then you will need to revert to the Nov 2014 security updates using the method oulined in this link: http://support2.microsoft.com/kb/2770432/en-us

    • Before reverting to the Nov 2014 update as indicated above you should first run the most current update File>Account>Update Options>Update Now. This worked for a customer of mine today without having to revert. Perhaps MS is fixed this???

  13. This solution rocked…one of our users has an Excel file that is crucial to her work, and that Update killed it. Your explanation and fix worked perfectly, and is much appreciated!

  14. It was indeed the KB2553154 update on office, in my case 2010, thanks for the explanation.

  15. Jon Livesey says:

    My newly written timesheet spreadsheet for my company had fallen over because of this bug but the VBA fix has solved it. Many, many thanks as otherwise I would have been stuffed!

  16. Thanks!!

    You are a star. Saved my day..

  17. VBA workaround was great… real lifesaver!
    I actually added a step that would first try to insert an ActiveX control, and then OnError, would run these routines, msgbox what was happening to the user, and then quit the application to force Excel restart.

    Windows 7 Enterprise, Service Pack 1
    Excel 2010

  18. Many many thanks.
    Was looking all evening for a solution.
    Then I found your explanation and solution.

    Now I’m smiling again.

    Thx

  19. David Bentley says:

    Thanks so much!
    I could not work out what the issue was – you saved the day.

  20. His solution was highly intelligent, above all, thanks for sharing. The world needs selfless people like you. Thanks man!

  21. Tariq Qayyum says:

    H,

    Thanks for the solution this save my life, excellent solution solid worked for me.

    You are the team.. hats off.

    Best Regards.
    Tariq

  22. Thanks! Worked great!

  23. Hello,

    For me, running the fixit or deleting the *.exd solves the problem locally on computers having run the update KB2553154 (for Office 2010)

    BUT

    Now I get the feed-back of remote users getting Run-time error ‘32809’: Application-defined or object-defined error.

    It seems that Error 32809 shows up if you open a workbook, which has been saved with a computer with installed update, on a computer without installed update. I found the same conclusion here:

    https://social.msdn.microsoft.com/Forums/office/en-US/84762af5-9120-470a-9206-086a83a3813c/runtime-error-32809?forum=exceldev

    Does somebody get the same problem? Any workaround to get rid of this last problem?

    Thanks

  24. Hello Yi,

    Great script ! Bright ideas ! Thanks for sharing.

    1) worked fine on Win 8.1 / Office 10 32bit

    2) small problem on Win XP / Office 10 32 bit:
    line – RenameFile Environ(“TEMP”) & “\VBE\” & msFormsFileName, Environ(“TEMP”) & “\VBE\” & tempFileName – can’t be achieved: I received a sharing vilolation error on the file as it is in use. By the way, I don’t get this error on win8.1. But if you comment this line, just renaming file in excel8.0 dir, the active X are again working fine after your code has been run, as far as I tested it.

    3) remark: using the file with active x control working and saved from a system fully patched on a system not patched generate run time error ‘32809’ or ‘57121’ Application-defined or object-defined error.

    again 1001 thanks for your commitment in helping us :)

    Philippe

  25. Alex Scott says:

    Thank you so much. I am one of the most un-tech-savvy people around and your patch just saved me hours and hours of time. Thanks again.

  26. David Tudor-Hall says:

    Thank you so much!! I have a huge deadline approaching and would’ve been absolutely lost without this fix.

  27. Greg Truby says:

    for i = 1 to 1000: msgbox “Thank you!”, vbExclamation, “You Rock!”: next i

    And I *STILL* haven’t thanked you enough. I have an add-in with tens of thousands of lines of code that has been working fine for a client for several years. I made a couple of moderate changes to the add-in for them at the beginning of the month (Jan. ’15) and when I sent it to them, it started erroring out and I could not replicate the error the client was getting.

    Your article and the subsequent comments here are GREAT!!! I ended up having to roll back my Office 2013 to the November ’14 version before the client could run my add-in. I would NEVER have thought to try that without your tips here.

    Also, kudos on the code you post here. You did a nice job of (a) breaking it down into logical calls to sub-routines and (b) trying to foresee and handle most of the common errors that would crop up when trying to rename and/or delete a file. Always nice to see solutions that are well-coded.

    • I’m glad that the short snippet of code was able to help you out!
      It’s also nice to hear positive feedback from another Excel developer who appreciates a clean coding style!
      I think this post wouldn’t have been this thorough had I not receive tips and suggestions from other generous Excel users. Thank you to those who’ve contributed insightful inputs on this issue.

  28. Thank you very much, I had many excel forms created for my work, this fixed the problem, excellent!

  29. i can confirm point 3 in psg post
    “3) remark: using the file with active x control working and saved from a system fully patched on a system not patched generate run time error ’32809′ or ’57121′ Application-defined or object-defined error.”

    same scenario

  30. i found this workaround
    1. from a fully updated pc just copy this 2 directories from the TEMP directory: Excel8.0 and VBE
    2. on a non udpdated pc close ms excel and manually delete from the TEMP directory Excel8.0 and VBE directories
    3. paste the Excel8.0 and VBE directories from step 1
    4. run Excel

    in my office with 11 pcs this worked

    ciao

    • Thanks for tip! I’m sure others will benefit! I can’t believe Microsoft still hasn’t released an official update to address this issue.

    • This WORKED after I had spent a half day trying all the other fixes. Thank you.

      • James R says:

        Thank you Vittorio, I can confirm this has worked for me too!

        One thing that caught me out…the spreadsheet you’re opening has to have been complied on the fully updated pc. I compiled on the non updated trying other fixes, and this version still doesn’t work. Re-compiled on the fully updated and all is well!!

        Hopefully my company will now roll out an update to Excel 2013 from 15.0.4675.1002 to 15.0.4693.1002 (which is my fully updated pc).

        Thanks again, James

      • This worked for me after trying all the other fixes. Thank you!

  31. Geert Schreurs says:

    Yesterday (appr.) MS released new Office updates and Office security updates.
    Is there any information on whether these updates will fix this issue for end users and developers?
    So all of the above isn’t necessary anymore when we install these updates?

    • Hi Geert,

      Thanks for pointing this out. I’ve tested the new Office updates (released 2/10/2015) on Excel 2010 (32-bit). Sadly, the updates do not fix the ActiveX issue. I haven’t tested the updates for other versions of Excel yet. If you’ve installed the latest Office update for versions other than 2010, please share whether the updates resolve the ActiveX issue.

  32. Hello again… per my previous gratitudes, the 2010 workaround worked great! But some of the machines in my office have now started installing Lync with Office-2013… but are still using Excel-2010… any extra insight for this scenario? I do not have admin rights and the users cannot control the MS-updates.

    Thanks so much for your time!


Leave a Comment

Your email address will not be published. Required fields are marked *

* required