VBA100本ノック 22本目:FizzBuzz発展問題
こちらで公開されている、100本ノックに挑戦。
www.excel-ubara.com
素晴らしい教材を公開いただき、ありがとうございます。
上記リンク先から、問題文を転載。
よく見かける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
実行した結果がこちら。
※冒頭リンク先の解答例および解説も、ぜひご一読ください。
参考まで。