أو بهذه الطريقة قطري للأعمدة
Public Sub Ali_Dly()
Dim i As Integer, j As Integer
Dim Ar
Set A = Range(Cells(9, 4), Cells(13, 10)).Cells(1)
Ar = Array("حساب", "عربي", "دين", "حاسب", "رياضة", "كيمياء", "احياء")
On Error Resume Next
For i = 1 To 4
Set A = Union(A, A.Cells(1).Offset(i, i))
Set B = Union(A.Offset(0, 1), A.Cells(1, 2).Offset(i, i))
Set C = Union(A.Offset(0, 2), A.Cells(1, 3).Offset(i, i))
Set D = Union(A.Offset(0, 3), A.Cells(1, 4).Offset(Choose(i, 1, 2, 3), Choose(i, 1, 2, 3)))
Set E = Union(A.Offset(0, 4), A.Cells(1, 5).Offset(Choose(i, 1, 2), Choose(i, 1, 2)))
Set F = Union(A.Offset(0, 5), A.Cells(1, 6).Offset(Choose(i, 1), Choose(i, 1)))
Set G = A.Cells(1, 7)
Next i
A.Cells = Ar(0): B.Cells = Ar(1)
C.Cells = Ar(2): D.Cells = Ar(3)
E.Cells = Ar(4): F.Cells = Ar(5): G.Cells = Ar(6)
End Sub