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.

  • 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

  • Hi, Robert!

    We have used MsComCtrl.ocx 64 bits, provided by Microsoft. 

    In Exel listview's control is available but in Bentley's VBA is not. 

    Do you have an alternative to this issue?

    Thanks in advance!!

  • Hi Jon,

    FYI. Microsoft Office itself provides an updated MsComCtrl.ocx (under: C:\Program Files\Microsoft Office\root\vfs\System)  and I would recommend not using the link above to attempt to correct any 64-bit software issues; since that link provides a download containing 32-bit PE image OCX files (not compatible with CONNECT).

    Bob