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 関数の書き方

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です