Microsoft released MS16-004 on Jan. 12, and weird Visual Basic 6, VBA, and SharePoint 2013 errors have followed in its wake.
The symptoms are many and varied, but all seem to be due to a problematic new version of the MSComctLib.ocx common control library for VB6 and VBA. It looks like the new version, 6.01.9846, saves templates that don't work properly on machines with older versions of MSComctLib.ocx. It's not clear to me if those same templates throw errors when run on some machines with the new version of MSComctLib.ocx.
Of course, Microsoft hasn't come up with any warnings in the KB articles.
On the Technet forum, poster ronald75 says:
Last week we received update MS16-004 and this caused problems in our software (VBA). We use Treeviews from mscomctl.ocx and on systems that are not up-to-date, our addin gives errors: "could not load object because it is not available on this machine".
Our systems are up-to-date and when we save our addin, it stops working for our customers. We have numerous customers that have a slow update policy (IT wants to test every update first for problems). This means we can never supply our customers with updated versions.
This is the fourth time that Microsoft has screwed up an mscomctl.ocx update. The usual fixes do not work:
- Deleting all the EXD files
- Reregistering the OCX
The up-to-date systems do run older Addins, but older systems cannot run the newly saved addins.
Is there a way to make to newly saved addins work on the not up to date machines? The simple answer "update all machines" obviously does not work, because we are not in control of the machines of all our customers (500+).
Why is the new mscomctl.ocx not backwards compatible (again!).
On the same thread, DanHSmith says:
We have the same issue, 100s of customers with 1000s of users.
Stackoverflow has a similar thread, where poster Thomas Basset says:
MSCOMCTL.OCX file version is 184.108.40.206, created & last modified 9/12/2015 but accessed at 3.33am yesterday (15/01/2016), i.e. about the same time the updates occurred… Once past the initial "automation error" message I would get a Compile error: "Object library feature not supported," highlighting lines of codes associated with the additional controls. I've verified these were causing the problem by creating a blank form and trying to add one on. I got the error message "Could not complete the operation due to error 800a0011". These additional controls are Microsoft TreeView Control 6.0 (SP6) and Microsoft ImageList Control 6 (SP6).
Poster wmenlonman describes a similar situation:
Ancient Access 97 app ... quits saying "Error 91: Object variable or With block variable not set". Examination showed it happens when the progress bar control which resides in Mscomctl.ocx is addressed. I found that KB2881029 (MS16-004) is the culprit. It installs the new version of MSCOMCTL.OCX. On machines w/o this update the Access app works fine.
Darren Myher has a full description of the problem, which manifests as the error "Object doesn't support this property or method" in Blue Link Elite. On his blog page, Myher gives detailed instructions for uninstalling the offending KBs.
There was an apparently related problem reported with the SharePoint 2013 list view command. Microsoft's Stefan Goßner describes a fix, which is distributed as part of KB 3114508, a patch for SharePoint 2013 that doesn't mention this list view problem.