Randomize Timer
Dim a() As Integer
Dim n As Integer, min As Integer, max As Integer
Dim i As Integer, j As Integer
n = Cells(1, 4)
ReDim a(n, n)
'очистка рабочего листа от посторонних надписей
For i = 1 To 10 * n
For j = 1 To 10 * n
Cells(i + 1, j) = ""
Next j
Next i
'заполнение массива случайными целыми числами
'вывод массива в рабочий лист Excel
Cells(3, 1) = "Исходный массив:"
For i = 1 To n
For j = 1 To n
a(i, j) = 50 - Int(Rnd() * 100)
Cells(i + 3, j) = a(i, j)
Next j
Next i
'поиск максимального и минимального элемента
'главной диагонали
min = a(1, 1): max = a(1, 1)
For i = 1 To n
If a(i, i) < min Then min = a(i, i)
If a(i, i) > max Then max = a(i, i)
Next i
'замена элементов главной диагонали на max
'замена элементов побочной диагонали на min
For i = 1 To n
a(i, i) = max
a(i, n - i + 1) = min
Next i
'замена центрального элемента на 0 при нечетном
'размере матрицы
If Int(n / 2) <> n / 2 Then a(Int(n / 2) + 1, Int(n / 2) + 1) = 0
'вывод на печать преобразованного массива
Cells(n + 5, 1) = "Пребразованный массив:"
For i = 1 To n
For j = 1 To n
Cells(n + 5 + i, j) = a(i, j)
Next j
Next i