VBA~貼り付け時に行と列を入れ替えよう~Excel
VBAでコピーしたデータを行列を入れ替えて貼り付けたい時はRange.PasteSpecialメソッドの定数TransposeをTrueに設定します。
下のコードを実行するとセルA3からセルD10をコピーしセルA12を基準に行列を入れ替えて貼り付けられます。
Sub test1() Range("A3:D10").Copy Range("A12").PasteSpecial Transpose:=True End Sub
指定したシートに貼り付ける
シートを指定するときはWorksheets("シート名")で指定できます。
下のコードを実行するとSheet1のセルA3からセルD10をコピーしSheet2のセルA3を基準に行列を入れ替えて貼り付けられます。
Sub test2() Worksheets("Sheet1").Range("A3:D10").Copy Worksheets("Sheet2").Range("A3").PasteSpecial Transpose:=True End Sub
ブックを指定して貼り付ける
ブックを指定するときはWorkbooks("ブック名")で指定できます。
Book1.xlsxとBook2.xlsxいうブックが開いた状態で下のコードを実行するとBook1.xlsxのSheet1のセルA3からセルD10をコピーしBook2.xlsxのSheet1のセルA3を基準に行列を入れ替えて貼り付けられます。
Sub test3() Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A3:D10").Copy Workbooks("Book2.xlsx").Worksheets("Sheet1").Range("A3").PasteSpecial Transpose:=True End Sub