練習問題
TRANSPOSE関数を使ってみた。
Sub 転置行列01() '指定したセル範囲の値の転置行列 Dim a As Variant Dim b As Variant Dim c As Integer Dim d As Integer a = Selection.Value '行と列の入れ替え b = Application.Transpose(a) '貼り付けるセルの指定 c = Range("A1") d = Range("A2") '指定したセルを先頭にして貼り付け Cells(c, d).Resize(UBound(b, 1), UBound(b, 2)) = b End Sub
関数を使わないほう。
Sub 転置行列02() '3行3列の転置行列 Dim a As Variant Dim i As Integer Dim j As Integer a = Range("A1:C3") '行と列の入れ替え、E1を先頭にして結果を貼り付け For i = 1 To 3 For j = 1 To 3 Cells(j, i + 4) = a(i, j) Next Next End Sub