Te da un error por que la posición en la que un arreglo inicia es 0 y no 1, de tal forma que el primer valor de tu arreglo se encuentre en la posicón 0.
- 0 - Posición 1
- 1 - Posición 2
- 2 - Posición 3
- 3 - Posición 4
- 4 - Posición 5
- 5 - Posición 6
- 6 - Posición 7
- etc
- 44 - Posición 45
Tu error es que tratas de acceder a la posición 45 pero su dirección real es 44, bueno y ¿como se arregla? For p = 0 To x-1, esto indica desde p es igual a cero hasta x -1 en nuestro caso 44. :D
Saludos