The Problem (Q-score 22, ranked #24th of 95 in the VBA Core archive)
The scenario as originally posted in 2013
I have a legacy application developed in VBA/Excel which uses ListView controls. Unfortunately, it looks like these controls can’t be used with 64-bit versions of Excel:
Native 64-bit processes in Office 2010 cannot load 32-bit binaries. This includes the common controls of MSComCtl [such as ListViews]. An alternative must be found for existing Microsoft Office VBA solutions that utilize these controls when the code is migrated to 64-bit Office 2010.
I need to migrate that legacy application to Excel 2010/13 x64. The process is mostly painless except for those ListView controls.
What are my main options to replace the ListView control and which would be the most effective (from a time&difficulty to implement perspective)?
Notes:
- This issue has been raised on MS forums but no practical answer has been given.
- adding
.nettag as I suspect some solutions could come from there.
To make it clearer, here is a snapshot of the Excel user form. The bottom part is the list view (I have hidden confidential information), which has sortable column, allows the user to select multiple, non-consecutive, lines.

Why community consensus is tight on this one
Across 95 VBA Core entries in the archive, the accepted answer here holds niche answer (below median) status — meaning voters are unusually aligned on the right fix.
The Verified Solution — niche answer (below median) (+7)
Advisory answer — community consensus with reference links
Note: the verified answer below is a reference / advisory response rather than a copy-ready snippet.
One thing that is theoretically possible would be to write your display code as a .Net assembly and access that via COM from your VBA code (see for example How can I make use of .NET objects from within Excel VBA? as a starting point for how to do this).
That way you can write .Net code for your controls. I haven’t done that myself and am not sure how well it applies to your problem, but it looks like an option.
I just found a short tutorial for calling .Net from Excel.
When to Use It — classic (2013–2016)
Ranked #24th in its category — specialized fit
This pattern sits in the 94% tail relative to the top answer. Reach for it when your scenario closely matches the question title; otherwise browse the VBA Core archive for a higher-consensus alternative.
What changed between 2013 and 2026
The answer is 13 years old. The VBA Core object model has been stable across Office 2013, 2016, 2019, 2021, 365, and 2024/2026 LTSC, so the pattern still compiles. Changes that might affect you: 64-bit API declarations (use PtrSafe), blocked macros in downloaded files (Mark-of-the-Web), and the shift toward Office Scripts for web-first workflows.