Como tienes el código sin indentar da pereza leerlo. He hallado algunos errores incluído conceptuales...
La variable 'numero', es una matriz, no puedes asignar un valor único a una matriz completa, sino que debes establecerlo a elemento en una posición concreta.
' Esto no es válido:
NUMERO = Text1.Text
' Esto si es válido:
NUMERO(i) = Text1.Text
' y Esto también es válido:
NUMERO(6) = Text1.Text
Luego hay errores conceptuales, por ejemplo, estableces una matriz de 11 elementos pero luego sólo usas 10. Las matrices declaradas sin specificar su elemento inferor se basan en la declaración Option Base, que por defecto (cuando se omite) es 0.
Entonces si tu dices
Dim x(10) ' va del elemento 0 al 10, por que option base no se estableció, por defecto es 0
dim x(1 to 10) ' va del elemento 1 al 10, por que lo he declarado explícitamente
dim x(-5 to 5) ' va del eleemnto -5 al elemento 5, por que lo he declarado explícitamente
Ahora si yo establezco en el código:
Option base 1
Dim x(10) ' va del elemento 1 al 10, por que option base se estableció en 1
dim x(0 to 10) ' va del elemento 0 al 10, por que lo he declarado explícitamente
dim x(-5 to 5) ' va del eleemnto -5 al elemento 5, por que lo he declarado explícitamente
Luego cometes otro error, si tienes que mostrar 10 textos, es correcto hacer un bucle con ese número de iteraciones, pero el textbox sólo se establece 1 vez antes de que tu ejecutes tu código. Esto no es consecuente. si el valor introducido fue 5, toda la matriz tendrá el mismo resultado, porque textbox1.text no cambia.
La solución: o bien pones un textbox por cada elemento de la matriz, o bien solicitas el texto mediante inputbox, tesoluciono el problema precisamente usando este último método..
Dim RESULTADO(1 To 10) As Long
Dim N As Integer
Private Sub cmdAGREGAR_Click()
Dim I As Byte
Dim txt As String
For I = 1 To UBound(NUMERO)
Do
txt = InputBox("Introduce un número...entre -32767 y 32767", "elemento " & I & " de 10", I)
If Abs(Val(txt)) > 32767 Then
txt = ""
End If
N = Val(txt)
Loop While N = 0
RESULTADO(I) = N * N
Next I
End Sub
He hecho varios cambios, fíjate en porqué los he hecho...
La matriz Numero sobra ya, si recogemos los valores al momento de usarlos.
La matriz resultado de ha dmensionado desde 1 a 10 elementos, para ser coherentes.
El texto se recoge con inputbox, puesto que la variable es un entero, el texto sólo es aceptado si el texto está dentro del rango de entero y ese valor es distinto de 0 (esta última restricción habría que pensársela ya que 0 es un número válido).
La matriz resultado se ha declarado como long, porque si se declara como integer cuando hallemos el cuadrado de ciertos valores provocará desbordamiento.
La variable de contador i, se declaró como byte, sólo utiliza un rango 1-10, suficiente para su contenido.
Un bucle do...loop no optimizado controla que se introduzca un texto válido. Sería preferible usar la expresión if isnumeric(txt) luego... también te recuerdo que -32768 es un valor integer lo mismo que 0. Perfeccionar el método es cosa a tu esfuerzo.
....etc...