Вот код для создания массива:
Dim a(1 To 5, 1 To 5) As Integer
Private Sub SetRing(lvl As Long, dimSize As Long, value As Long)
Call SetHValues(lvl, dimSize, value)
Call SetVValues(lvl, dimSize, value)
End Sub
Private Sub SetHValues(lvl As Long, dimSize As Long, value As Long)
Dim i As Long, k As Long
If lvl > (dimSize / 2) + 1 Then Exit Sub
For i = lvl To dimSize - lvl + 1
' horizontal values'
a(lvl, i) = value
a(dimSize - lvl + 1, i) = value
Next
End Sub
Private Sub SetVValues(lvl As Long, dimSize As Long, value As Long)
Dim i As Long, k As Long
If lvl > (dimSize / 2) + 1 Then Exit Sub
For i = lvl To dimSize - lvl + 1
' vertical values'
a(i, lvl) = value
a(i, dimSize - lvl + 1) = value
Next
End Sub
И для создания образца массива вы должны вызвать:
Call SetRing(1, 5, 100)
Call SetRing(2, 5, 105)
Call SetRing(3, 5, 110)