BMIを計算するマクロ
マクロ講座81回 If~Then~ElseIfステートメント
BMIを計算するマクロ Excel2013 マクロ講座 81回
BMIを算出する If~Then~ElseIf
ExcelVBAでBMI値を算出するマクロを作成しましょう。BMIの数値によって肥満の程度を判定することができます。
(サンプルファイルは、こちらから マクロ81回サンプルデータ)
条件に一致するかどうかで処理を振り分ける
BMIを算出したら、その数値によって、判定を振り分けます。
条件が複数あるので、使うのは、If~Then~ElseIfステートメントです。下の解説図では、処理は4つですが、ElseIf ~Thenを追加することで条件をさらに増やす事ができます。
今回は、すでに身長と体重を計測した表とBMIの判定基準が表示された表をもとにBMIと判定を入力していきます。
BMIによる判定は6通りありますから、If~Then~ElseIfを使ったコードは以下のようになります。BMI、判定は変数として宣言しています。
If BMI < 18.5 Then 判定 = "低体重" ElseIf 18.5 <= BMI And BMI < 25 Then 判定 = "標準" ElseIf 25 <= BMI And BMI < 30 Then 判定 = "肥満1度" ElseIf 30 <= BMI And BMI < 35 Then 判定 = "肥満2度" ElseIf 35 <= BMI And BMI < 40 Then 判定 = "肥満3度" Else 判定 = "肥満4度" End If
繰り返し処理をするFor~Nextステートメント
上記のコードをFor~Nextで挟んで、1行ごとに判定していくようなコードを書いてやります。
身長と体重が記入された表でBMIを算出し肥満度を判定するコードは以下のようになります。
Sub BMI値を算出() Dim mysheet As Worksheet, 身長 As Double, 体重 As Double Dim BMI As Double, 判定 As String, i As Integer Set mysheet = ThisWorkbook.Worksheets("例1") With mysheet For i = 2 To 27 身長 = .Cells(i, 1) 体重 = .Cells(i, 2) BMI = 体重 / (身長 / 100) ^ 2 If BMI < 18.5 Then 判定 = "低体重" ElseIf 18.5 <= BMI And BMI < 25 Then 判定 = "標準" ElseIf 25 <= BMI And BMI < 30 Then 判定 = "肥満1度" ElseIf 30 <= BMI And BMI < 35 Then 判定 = "肥満2度" ElseIf 35 <= BMI And BMI < 40 Then 判定 = "肥満3度" Else 判定 = "肥満4度" End If .Cells(i, 3) = BMI .Cells(i, 4) = 判定 Next i End With End Sub
お疲れ様でした。
次回は、BMIの条件分岐をSelect Caseを使ったコードでマクロにしてみましょう。