OfficeType

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を基準に行列を入れ替えて貼り付けられます。

image-01

Sub test2()

Worksheets("Sheet1").Range("A3:D10").Copy
Worksheets("Sheet2").Range("A3").PasteSpecial Transpose:=True

End Sub

image-02

ブックを指定して貼り付ける

ブックを指定するときは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

image-03

image-04

image-05