つらつら Excel VBA

私の備忘録です。

Transposeで行列の反転

Sub 行と列を入れ替えて貼り付け()
    
    Selection.Copy
    
    Range("D1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, Transpose:=True
    
    Application.CutCopyMode = False
    
End Sub
Sub 反転して出力()
    
    Dim r As Range
    Set r = Selection '選択箇所
    
    Dim arr
    arr = WorksheetFunction.Transpose(r) '反転して配列に格納
    
    Dim pasteRange As Range
    Set pasteRange = Range("D5") '出力先
    
    '出力先を反転後のセル範囲に合わせる
    Range(pasteRange, pasteRange.Offset(r.Columns.Count - 1, r.Rows.Count - 1)).Value = arr
    
End Sub

以上。