I don't know if this would make an official definition but...

Public SumXCollection As Collection

Is a variable, or container of a specific type. This would be the definition... You're basically saying "If I want to use this, it will be a collection". It is empty, until you tell the program to use it.

Set SumXCollection = New Collection is the definition

This is where you are saying "I really want to use this object. Create me a new one and put it in this variable." At this point the variable becomes "live", and has a scope.

(Just to clarify one point... I didn't address those questions above, sorry. I focussed on "Do I need both". The answer there is still yes. )