※標準機能のTransposeは上限値があるため、自作した。
VBA
'-------------------------------
' 関数呼び出し例
'-------------------------------
Private Sub sample()
'使用例
Dim ret: ret = TransposeArray(Range("A1:B5"))
End Sub
'-------------------------------
' 配列を入れ替える。(x,y)->(y,x)
'-------------------------------
Public Function TransposeArray(arr) As Variant
TransposeArray = ""
If Not IsArray(arr) Then GoTo OnError
Dim ret() As Variant: ReDim ret(1 To UBound(arr, 2), 1 To UBound(arr, 1))
Dim i: For i = LBound(arr, 2) To UBound(arr, 2)
Dim j: For j = LBound(arr, 1) To UBound(arr, 1)
ret(i, j) = arr(j, i)
Next
Next
TransposeArray = ret()
End Function