Iv heard something about collections being better
Note: Your C# code is already using a collection.

Your VBA code is attempting to use a collection that may no be defined..

Is struct_XOrder defined in a class module?

Are you needing an array so that it can be passed to a web service?