Tips

【ExcelVBAベーシック】For~Nextステートメント、Ifステートメント②【練習問題】

【ExcelVBAベーシック】For~Nextステートメント、Ifステートメント②【練習問題】

ExcelVBAベーシックの試験範囲に関する練習問題を記載していきます。
勉強して得た知識が定着しているかを確認しましょう。
他の練習問題を見たい場合は練習問題一覧を押下し確認してください。

【問題】

1~100の値を出力するコードを記述してください。
ただし、3の倍数のときは「Fizz」、5の倍数のときは「Buzz」、3と5の両方の倍数のときは「FizzBuzz」と出力してください。

【解答と解説】
※問題の要件を満たしていれば正解としてください。

プログラマ業界では有名なFizzBuzz問題です。
コードは以下になります。

For i = 1 To 100

    w = ""

    If i Mod (3 * 5) = 0 Then
    	
    	' 3と5の両方の倍数のとき
        w = "FizzBuzz"
    
    ElseIf i Mod 3 = 0 Then
    
    	' 3の倍数のとき
        w = "Fizz"
    
    ElseIf i Mod 5 = 0 Then
    
    	' 5の倍数のとき
        w = "Buzz"
        
    Else
    
    	' 上記に当てはまらないとき
        w = i
    
    End If

    Cells(i, 2) = w

Next

「割り算した結果の余りが0になるかどうか」を求める必要があるので、「Mod」を使って計算を行いました。
余りが0の場合、FizzもしくはBuzz、FizzBuzzを代入し
それ以外はiの値をそのまま代入しています。

▼実際に試したのがこちら


3の倍数のときは「Fizz」、5の倍数のときは「Buzz」、3と5の両方の倍数のときは「FizzBuzz」と出力されました。


excel_VBAを学んで業務効率化!

excel-vba入門 連載

Recent News

Recent Tips

Tag Search