I have set up a global variable called VarCoords() as variant. As I am currently using it, it takes on the dimensions VarCoords(X,Y) where X ranges from 0 to n (some number of points), and Y ranges from 0 to 6. Right now, I want to expand my program and basically turn one of the x,y entries into a set of values of size m (to be determined later) in the same way one of my variables (X,1) is a 3D coordinate which information can be obtained by going VarCoords(X,1)(0) for x coordinate or (1) for y coordinate or (2) for z coordinate. Is there a way to tell VBA that my entry VarCoords(X,6) is to have 'm' entries which can be populated or retrieved by doing VarCoords(X,6)(0) or (1) or ... (m) ?? or to do this will I have to use a user-defines data type defined something like this type VarCoords(n) Var1 as integer Var2(2) as double ... Var6(m) as double end type ??? I didn't want to bother with user types in the beginning, but as my program evolves, it is getting more complicated with more variables - and I may have to go this route. thanks DRW