Vba で範囲を転置する方法 (例付き)
VBA を使用して範囲を転置するには、次の基本構文を使用できます。
SubTransposeRange ()
'specify range to transpose
MyRange = Range(" A1:B5 ")
'find dimensions of range
XUpper = UBound(MyRange, 1)
XLower = LBound(MyRange, 1)
YUpper = UBound(MyRange, 2)
YLower = LBound(MyRange, 2)
'transpose range
Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
WorksheetFunction.Transpose(MyRange)
End Sub
この特定の例では、範囲A1:B5のセルを転置し、セルD1から始まる転置された範囲を表示します。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA で範囲を転置する方法
さまざまなバスケットボール選手に関する情報を含む次のデータセットが Excel にあるとします。
範囲 A1:B5 を転置し、セルD1から始まる転置された範囲を表示するとします。
これを行うには、次のマクロを作成できます。
SubTransposeRange ()
'specify range to transpose
MyRange = Range(" A1:B5 ")
'find dimensions of range
XUpper = UBound(MyRange, 1)
XLower = LBound(MyRange, 1)
YUpper = UBound(MyRange, 2)
YLower = LBound(MyRange, 2)
'transpose range
Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
WorksheetFunction.Transpose(MyRange)
End Sub
このマクロを実行すると、次の出力が表示されます。
転置された範囲はセルD1から表示されることに注意してください。
つまり、行と列が逆になります。
別の範囲を置き換えるには、マクロ内のA1:B5を別の範囲に置き換えるだけです。
注: VBA Transposeメソッドの完全なドキュメントはここにあります。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: 特定のテキストを含むセルを数える方法
VBA: 範囲内の行数をカウントする方法
VBA: COUNTIF 関数と COUNTIFS 関数の書き方