CONNECT VBA: List Control and the MsComCtrl.ocx

MicroStation V8i provides 32-bit VBA v6.5.   As any other implementation of VBA (e.g. Microsoft Office), that lets you reference other 32-bit DLLs.  Another name is OCX, when the DLL delivers a user-interface (UI) component.  A popular OCX is the MsComCtrl.ocx, which contains a number of components that make VBA better.  Many chose to use the ListCtrl (List view control), which offers several benefits over the ListBox delivered with VBA.

MsComCtrl.ocx — 32-bit Only

Then 64-bit Windows arrived, around the turn of the century.  Bentley Systems released MicroStation CONNECT in 2015.  MicroStation CONNECT provides 64-bit VBA v7.1.  Most VBA macros run without change when transferred from V8i to CONNECT.  Some that don't run include those that use a ListCtrl.  Why?  Because Microsoft didn't provide a 64-bit version of MsComCtrl.ocx.

Office 365 and Office 2019

Microsoft Office is available in both 32-bit and 64-bit versions.   Install the 64-bit version of Office 365 or later, and you will find a 64-bit version of MsComCtrl.ocx.  Add the ListCtrl to your VBA toolbox, and you can once again craft a superior list viewer.

Parents Comment Children
  • Hi ,

     had brought this issue to my attention Friday where we spent about 45 min to perform a verification process against not being able to use the MsComCtrl.ocx Microsoft Office provides as an update. On my computer I found that a 32-bit instance and location "was registered" in my 64-bit listing so, I proceeded to unregister that version (successfully) and then I was able to see the MsComCtrl.ocx listed from the correct "VFS" location (prev referenced above); however I (like you) are a.) able to see (and check) the control in project References, yet b.) unable to view the ListView control under the VBA Toolbox > Add Control listing.  I will see if there is a way to "register" controls to the "Add Controls" listing. If not, there is a chance the VBA 7.1 engine may require an update/refresh (I will look to do this anyway from a security/updates aspect) and/or contact Microsoft to see if the control has other requirements than being a specific version of VBA engine to permit view/access to.  I can keep everyone posted on this thread/post by .

    HTH,
    Bob