VBA100本ノック 22本目:FizzBuzz発展問題

こちらで公開されている、100本ノックに挑戦。
www.excel-ubara.com
素晴らしい教材を公開いただき、ありがとうございます。

上記リンク先から、問題文を転載。
f:id:Infoment:20220221231720p:plain

よく見かけるFizzBuzz問題と言えば、例えばイミディエイトウィンドウに結果を
出力するなどだろうか。今回は、結果によって出力する列を変えていることで、
発展的な問題となっている。

Sub VBA_100Knock_022()
    Dim arr() As Variant
    Dim iMax As Long: iMax = 100
    ReDim arr(1 To iMax, 1 To 4)
    Dim i As Long
    Dim j As Long
    Dim Result As Variant
        For i = 1 To iMax
            If i Mod 15 = 0 Then
                j = 4: Result = "FizzBuzz"
            ElseIf i Mod 5 = 0 Then
                j = 3: Result = "Buzz"
            ElseIf i Mod 3 = 0 Then
                j = 2: Result = "Fizz"
            Else
                j = 1: Result = i
            End If
            arr(i, j) = Result
        Next
        
        Range("A1").Resize(iMax, 4) = arr
End Sub

実行した結果がこちら。
f:id:Infoment:20220221232328p:plain


※冒頭リンク先の解答例および解説も、ぜひご一読ください。

参考まで。