Google these keywords:
? OBJECT
? REUSE
? DATA HIDING
? CLASS
? ENCAPSULATION
? ABSTRACTION
? INHERITANCE
? POLYMORPHISM
Unfortunately, the last two do not really apply to VBA. Nevertheless, the advantages offered by the others are, in my opinion, very important. I use classes whenever possible in my development and the results have been worth the effort undertaken to understanding object oriented concepts. One of the main advantages of using classes in an object based, though actually a procedural language, such as VBA is realized when utilizing events. In fact, you must use a class construct to use events in VBA. A very good example of the benefits of classes is seen in the very objects that make up your default VBProject such as the worksheet class. Your worksheet is an "object" that is defined by it properties, methods, and events. There are things that a worksheet object...
...can do
...can know or contain or have access to
...can respond to
In a real OO language such as any of the .net compliant languages, you could actually inherit from and extend this class. (if inheritable).
Back to the worksheet object. Once created, debugged, and tested, you do not have to recreate this object. You just use it. Increasingly, over time, my job is made easier by importing previously constructed objects from my own repository or elswhere and reusing them with a minimal amount of code in current projects. I am using code that is already created, debugged, and tested.
There are other benefits as well.