In most situations, Excel objects, such as shapes and buttons, perform simple functions and stand on their own. However, when stored within a class, the opportunity exists to supplement the functionality of custom objects.
If you’re interested in learning VBA, that means you want to write scripts that interact with a spreadsheet. The foundation of this interaction is the Range Object. The Range Object contains all the necessary features and tools to make your VBA scripts speak to a spreadsheet.
While the Listbox Form and ActiveX control can suit the needs of many, they lack many options that provide full interactivity and customization. A custom VBA solution will give you full control of how listboxes look, and how users interact with them.