[[練習問題]]~
TRANSPOSE関数を使ってみた。
Excel関数のTRANSPOSEを使ったプログラム。
 Sub 転置行列01()
 '指定したセル範囲の値の転置行列
 Dim a As Variant
 Dim b As Variant
 Dim c As Integer
 Dim d As Integer
 Dim c As String
 'あらかじめ指定してあるセル範囲を配列にする
 a = Selection.Value
 '行と列の入れ替え
 b = Application.Transpose(a)
 b = Application.WorksheetFunction.Transpose(a)
 '貼り付けるセルの指定
 c = Range("A1")
 d = Range("A2")
 c = Range("A1").Address
 '指定したセルを先頭にして貼り付け
 Cells(c, d).Resize(UBound(b, 1), UBound(b, 2)) = b
 Range(c).Resize(UBound(b, 1), UBound(b, 2)) = b
 End Sub

関数を使わないほう。
TRANSPOSEを使わないプログラム。
 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
    Next
 End Sub


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS