"BMI判定"
"出力例"
ボディマス指数算出して、判定するプログラムを作成しろ
データは乱数を使って出力
BMI = w/t^2 [kg/m^2]
18.5未満 : やせ
18.5~25未満 : 標準
25~30未満 : 肥満
30以上 : 高度肥満
データは乱数を使って出力
BMI = w/t^2 [kg/m^2]
18.5未満 : やせ
18.5~25未満 : 標準
25~30未満 : 肥満
30以上 : 高度肥満
"サンプルマクロ01"
"ヒント・解説01"
Public Sub Judgegrade01() Dim i As Byte Const n As Byte = 30 Randomize For i = 1 To n Range("C" & i).Value = i Range("D" & i).Value = (Rnd() * 0.6) + 1.4 Range("E" & i).Value = (Rnd() * 60) + 40 Range("F" & i).Value = Range("E" & i).Value / (Range("D" & i).Value) ^ 2 Select Case Range("F" & i).Value Case 30 To 100 Range("G" & i).Value = "高肥満" Case 25 To 29.9 Range("G" & i).Value = "肥満" Case 18 To 24.9 Range("G" & i).Value = "標準" Case 0 To 17.9 Range("G" & i).Value = "やせ" End Select Next i End Sub
乱数を使って身長と体重のデータを出力する
"サンプルマクロ02"
"ヒント・解説02"
Public Function JBMI(height As Single, weight As Single) As Variant Dim bmi As Single bmi = weight / (height) ^ 2 Select Case bmi Case Is >= 30 JBMI = Array(bmi, "高度肥満") Case Is >= 25 JBMI = Array(bmi, "肥満") Case Is >= 18.5 JBMI = Array(bmi, "標準 ") Case Else JBMI = Array(bmi, "やせ") End Select End Function Public Sub judgeBMI02() Dim i As Byte Const n As Byte = 30 Randomize For i = 1 To n Range("C" & i).Value = i Range("D" & i).Value = Rnd() * 0.51 + 1.5 '1.50-2.00m Range("E" & i).Value = Rnd() * 101 + 50 '50-150kg Range("F" & i).Value = JBMI(Range("D" & i).Value, Range("E" & i).Value)(0) Range("G" & i).Value = JBMI(Range("D" & i).Value, Range("E" & i).Value)(1) Next i With Columns("D:F") '列の書式を数字小数点以下2桁にする .NumberFormatLocal = "0.00_ " End With End Sub
関数を作って判定する