- 締切済み
EXCELのマクロでクリップボードを使わずに行列入れ替えて貼り付けのしかた
EXCELのマクロでクリップボードを使用せずに行列の入れ替えをして貼り付け の仕方がわかりません。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- hige_082
- ベストアンサー率50% (379/747)
参考まで Sub test() Dim a a = Application.Transpose(Range("a1:c7")) Range("a10").Resize(UBound(a, 1), UBound(a, 2)) = a End Sub
- mitarashi
- ベストアンサー率59% (574/965)
copy,pasteしないでもtransposeは使えますが、これではお望みの動作にはなりませんか?と書いているうちに、#2さんの回答が出ましたが、折角書いたのでアップしておきます。ご参考まで。 Sub test() Dim targetRange As Range Dim buf As Variant Set targetRange = Sheets(1).Range("a1").CurrentRegion buf = Application.Transpose(targetRange) Sheets(2).Range("a1").Resize(targetRange.Columns.Count, targetRange.Rows.Count) = buf End Sub
- xls88
- ベストアンサー率56% (669/1189)
TRANSPOSE関数を入れ込んで値にすればどうでしょうか。 元のデータが日付の場合はシリアル値になります。 With Sheets("Sheet2").Range("A1:J2") .FormulaArray = "=TRANSPOSE('Sheet1'!A1:B10)" .Value = .Value End With
- MackyNo1
- ベストアンサー率53% (1521/2850)
たとえば、A1セルからのデータを行列入れ替えて、アクティブセル以下に表示するなら、以下のようなコードを使って、For Next 構文で行数と列数分だけ値の代入を繰り返せばよいと思います。 ActiveCell.Offset(i - 1, j - 1).Value = Range("A1").Offset(j - 1, i - 1).Value