VBA100本ノック 34本目を動画で解説しています。Excelの神髄さんの模範解答はコチラ
問題
#VBA100本ノック 34本目
今回は2次元配列を使った頭の体操です。
2次元配列と回転方向を引数で受け取り、以下の変換後の配列を返すFunctionを作成してください。
回転方向は2種類
・右90度回転
・左90度回転
※引数のデータ型、指定方法は任意
※回転サンプルは画像を参照

解答
Sub 配列回転1()
Dim ary(), 回転前の行数, 回転前の列数
ary = Range("B2").CurrentRegion
回転前の行数 = UBound(ary, 1)
回転前の列数 = UBound(ary, 2)
Dim Newary()
ReDim Newary(1 To 回転前の列数, 1 To 回転前の行数)
Dim i, j
For i = 1 To 回転前の列数
For j = 1 To 回転前の行数
Newary(i, j) = ary(j, 回転前の列数 + 1 - i)
Next j
Next i
Range("K1").Resize(回転前の列数, 回転前の行数) = Newary
End Sub
Function 配列回転(ary2 As Range) As Variant
Dim ary(), 回転前の行数, 回転前の列数
ary = ary2
回転前の行数 = UBound(ary, 1)
回転前の列数 = UBound(ary, 2)
Dim Newary()
ReDim Newary(1 To 回転前の列数, 1 To 回転前の行数)
Dim i, j
For i = 1 To 回転前の列数
For j = 1 To 回転前の行数
Newary(i, j) = ary(j, 回転前の列数 + 1 - i)
Next j
Next i
配列回転 = Newary
End Function

新人君
めちゃくちゃ
難しそうですね!

ブチョ
サービス問題だな!

新人君
嘘でしょ…
コメント