Modules are global through out the code. By default recorded Macros are saved in Modules, though you can cut the code and paste the Sub/Function into a class.
Mod1.DoSomething() ' Mod1 doesn't need to be instantiated, its global through the app, there is only one instance of it and that's called a Singleton pattern.
Classes are a concept where you need to instantiate them and their scope is limited.
Public globalScope as New Class0 ' <-- class0's methods are available in and outside a Module or Class.
Private memberScope as New Class1 ' <-- class1's methods are available inside the whole Module or Class.
Dim localScope as New Class2 ' <-- class2's methods are only available inside a Sub/Function.
You'll probably want to keep your event handlers in a Module as that's global. If you dispose a class with Events those events won't be available.
ps in .Net coding "Modules" are called Static Classes
Ps2 an fyi the difference between a Subroutine and a Function is; a Function returns a value where as a Subroutine just does something.