estás haciendo mezclas con el otro tipo de Instrucción Type
Lo que se usa para pasar un arreglo a una subrutina no es ByVal es ByRef
redim preserve temp1(i)
Si deseas colocar un array en forma global debes de dimensionarlo en un módulo BAS por ejemploAdemás tienes en la línea Sub Modi_array(arreglo1 as type1, arreglo2 as type2) y en el código que sigue no usas ni arreglo1 ni arreglo2.
Además tienes en la línea Sub Modi_array(arreglo1 as type1, arreglo2 as type2) y en el código que sigue no usas ni arreglo1 ni arreglo2.