VBA ImageList Control Alternative
by Igor Katenov, Lead Developer of 10Tec Products
What do software developers mean when they say VBA ImageList Control? In the vast majority of cases, they are referring to the Microsoft ImageList control from the Microsoft Common Controls package (MSCOMCTL.OCX). This control is an ActiveX control that can be used as an ImageList control in VBA — in Word/Excel UserForms or Access forms. It serves as a container for a set of uniformly sized images, which can be rendered within other controls included in the Microsoft Common Controls package, such as Microsoft ListView or TreeView:
Using the standard ImageList Control in VBA may seem simple and straightforward. But why then would developers need to find an alternative to this VBA ImageList control? Let's try to figure it out.
Why the standard VBA ImageList control is a problem
The Microsoft ImageList ActiveX comes from the MSCOMCTL.OCX library, originally designed in the 1990s. While still available in Windows and redistributed with Microsoft Office, it has not been meaningfully updated for many years and suffers from several well-known issues.
1. OCX registration failures
Any OCX control must be registered in the Windows registry before it can be used in applications. One of the most common complaints is that MSCOMCTL.OCX often fails to register properly on client machines. Users can encounter errors like "Component MSCOMCTL.OCX or one of its dependencies not correctly registered" (read, for example, this Stackoverflow thread). Furthermore, administrator rights are required to register MSCOMCTL.OCX. For corporate deployment or distributing VBA solutions, this all is a major problem.
2. Stability issues in VBA
The MSCOMCTL.OCX library is infamous for:
- Version conflicts after Windows Updates.
- Breaking references inside existing VBA projects.
- Occasional crashes when switching forms or user controls.
- Serialization issues (the image list may become empty).
Even Microsoft has documented regressions related to MSCOMCTL.OCX updates.
3. Lack of support for modern image formats
The standard VBA ImageList supports mostly old image formats — BMP/DIB, ICO/CUR, GIF, JPG. The support for color depth is also limited by 24 bits per pixel. There is no native PNG support and alpha transparency (32-bit images). This results in outdated-looking UI elements or blurry images.
4. Poor 64-bit compatibility (VBA 64-bit / Office 64-bit)
The original Microsoft ImageList was never designed for a 64-bit environment. The control does not provide a native 64-bit version, relying instead on the legacy 32-bit OCX that is instantiated in 64-bit environment with thunking and compatibility shims within Windows. As a result, it may fail to load in 64-bit Office applications, or developers may encounter "Object library not registered" and similar COM errors.
As 64-bit Office has become the default installation for most users and organizations, continuing to rely on a control without stable 64-bit support is no longer a sustainable long-term choice.
5. No active development or support
Microsoft has not updated ImageList for real development needs in decades. The company stopped supporting the original ImageList ActiveX control in 2008 and no longer provides bug fixes for it. Dependence on an unsupported, obsolete control poses significant risks for serious long-term VBA development projects.
10Tec ImageList as a VBA ImageList control alternative
To address all of these limitations of the standard VBA ImageList control, many developers choose to replace it with a modern, actively supported ImageList alternative suitable for VBA development. 10Tec ImageList ActiveX can be considered such an alternative for the following reasons:
- Full support for PNG, alpha transparency, and 32-bit Icons.
This instantly gives applications a modern visual appearance. - 64-bit Office/VBA support.
10Tec provides a native 64-bit version of its ImageList OCX that works well in the 64-bit Microsoft Office VBA environment. - Reliable Deployment.
The 10Tec ImageList OCX registers cleanly on all supported Windows versions and does not conflict with system updates. And what is also important, no administrator rights are required to register this OCX in the OS. - Actively supported.
10Tec continues to develop modern ActiveX components, for which Microsoft Office VBA is the primary environment of use. You get documentation, samples, support, updates, and bug fixes. - Completely free and open-source.
10Tec ImageList is distributed free of charge and is a completely open source project.
Below you can see a screenshot of 10Tec ImageList control used on an Access form in 64-bit Microsoft Office:
Perhaps the only significant drawback of 10Tec ImageList OCX is that it cannot be used with other controls from the Microsoft Common Controls package because Microsoft uses proprietary COM interfaces in its ActiveX controls. However, considering that ImageList is typically used with list, grid, or tree controls such as ListView or TreeView, you may want to consider using 10Tec ImageList ActiveX with 10Tec iGrid ActiveX. In these scenarios, 10Tec ImageList is a first-class and free alternative to the standard VBA ImageList control.

