Ciao ragazzi, devo risolvere un problemino idiota, ma sono pochissimi giorni che studio vba da autodidatta e non capisco come fare.

Ho generato una matrice con numeri random 0,1 e devo calcolare le somme così:
- sulla diagonale principale
- sulla diagonale secondaria
- sui bordi

Inoltre dovrei anche costruire un vettore che restituisca ordinati tutti i valori della matrice partendo dal vertice in alto a sx andando verso destra sul bordo, continuando a scendere sul bordo e così via completando la matrice a spirale (il secondo giro quindi inizierà in posizione cells(2,1) passando a cells 2,2 fino ad arrivare a cells(2, n-1) per poi scendere, spero di essermi spiegato).

Mi sono bloccato subito al primo problema.
Vi posto il codice che ho provato a scrivere:

**********************************
Private Sub prova_matrix()
Dim h As Integer, l As Double, n As Integer, matrix() As Integer, somma() As Integer

Cells(1, 8) = "altezza matrix >"
Cells(2, 8) = "lunghezza matrix quanto lunga >"
l = Cells(1, 9)
h = Cells(2, 9)

ReDim matrix(1 To h, 1 To l)


For i = 1 To h
For j = 1 To l
matrix(i, j) = (Rnd * 1)
Cells(i, j) = matrix(i, j)
Next j
Next i



ReDim somma(i, j)

For i = 1 To n
For i = 1 To n
For j = 1 To n
If i = j Then somma(i, j) = somma(i, j) + Cells(i, j)
Next j
Next i
Cells(10, 1) = somma(i, j)
End Sub
**********************************



nota bene: ho messo le dimensioni in 1,8 e 2,8 solo per semplificare il calcolo, ovviamente in questa maniera posso per ora solo scrivere matrici piccole...ma era per capire il meccanismo, dopo posizionerò la matrice in modo che possa essere nxm senza che le caselle di definizione di n ed m diano fastidio

GRAZIE A CHIUNQUE RISPONDA!!!