「EXCEL VBA FIZZBUZZ」
EXCEL VBAでFIZZBUZZ書いてみた。
ついでナベアツも書いてみた。
→3のつく数字と3の倍数の時アホになり、5の倍数の時は犬になります
Sub FIZZBUZZ() Dim I As Integer Dim J As String For I = 1 To 100 J = I ' FIZZBUZZ If I Mod 15 = 0 Then Cells(I, 1).Value = "FIZZBUZZ" ElseIf I Mod 5 = 0 Then Cells(I, 1).Value = "BUZZ" ElseIf I Mod 3 = 0 Then Cells(I, 1).Value = "FIZZ" Else Cells(I, 1) = I End If ' NABEATU 3のつく数字と3の倍数の時アホになり、5の倍数の時は犬になります If I Mod 15 = 0 Then Cells(I, 2) = "アホになりながら、わお〜ん" ElseIf J Like "*3" Or J Like "3*" Or J Like "*3*" Or I Mod 3 = 0 Then Cells(I, 2) = "アホになる" ElseIf I Mod 5 = 0 Then Cells(I, 2) = "わお〜ん" Else Cells(I, 2) = I End If Next End Sub
実行すると、EXCELの1列目がFIZZBUZZ、
2列目がナベアツになるはず。
3がつく数字の判定を、正規表現か、100・10で割った余りが"3"になるかで判定しようと思ったけど、
楽な方法で逃げた。
さらにちょっといじってみた。
Sub FIZZBUZZ2() Dim K As Long Dim I As Long Dim J As Long Dim C As Variant C = Range(Cells(1, 1), Cells(1000, 256)) For I = 1 To 1000 For K = 1 To 256 J = I * K ' NABEATU 3のつく数字と3の倍数の時アホになり、5の倍数の時は犬になります If (I * K) Mod 15 = 0 Then C(I, K) = "アホになりながら、わお〜ん" ElseIf J Like "*3" Or J Like "3*" Or J Like "*3*" Or (I * K) Mod 3 = 0 Then C(I, K) = "アホになる" Cells(I, K).Interior.ColorIndex = 36 '模様がわかりやすくするために、色つける ElseIf I Mod 5 = 0 Then C(I, K) = "わお〜ん" Else C(I, K) = I * K End If Next Next Range(Cells(1, 1), Cells(1000, 256)).Value = C End Sub
これを走らせたEXCELを縮小してみると、なんか模様ができるw
なので、ちょっと色をつけてみました。