「ExcelでBMIを手計算してるけど、いちいち式を入力するのが面倒…」
「体重や身長を変えたら、自動でBMIも更新してほしい」
そんなニーズに応えるのが、Excel VBAによるBMI自動計算ツール
今回は、身長(cm)と体重(kg)を入力すると、BMIと判定基準を表示するマクロをご紹介します。
ExcelでBMIを自動計算
このExcelVBAコードはこんな人におすすめです!!
- 健康管理・ダイエット記録をつけている方
- ExcelでBMIを簡単に計算したい方
- 複数人分のBMIを一括処理したい方
Excelシートの準備
シートの1行目にタイトルを入力

C列D列E列を選択し、「その他の表示形式(M)」をクリック

分類は「数値」を選択して小数点以下の桁数を「1」に設定し「OK」をクリック

テストデータをそれぞれの行に入力

これでシートの準備が完了しました。続いてコマンドボタンの作成をしていきましょう。
コマンドボタンの作成
「開発」タブから「挿入」をクリックしてActiveXコントロール内の「コマンドボタン」をクリック

適切な位置にボタンを配置

ボタンを右クリックして「プロパティ」をクリック

オブジェクト名を「calcBMI」Captionを「BMI計算」に変更してプロパティを閉じる

これでコマンドボタンの作成は終了です。いよいよVBAコードを作成しましょう。
VBAコード
さきほど作成したコマンドボタンを右クリックして「コードの表示」をクリック

表示されているエディターに下記コードを入力
Private Sub calcBMI_Click()
Dim lastRow As Long
Dim i As Long
Dim height As Double
Dim weight As Double
Dim bmi As Double
With ActiveSheet
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row 'A列の最終行を取得
For i = 2 To lastRow
If IsNumeric(.Cells(i, 3)) And IsNumeric(.Cells(i, 4)) Then '身長と体重が数値であるか確認
height = .Cells(i, 3) / 100 'cm→mに変換
weight = .Cells(i, 4)
If height > 0 And weight > 0 Then '身長体重が0以上
bmi = weight / (height * height) 'BMIの計算(体重÷(身長×身長))
.Cells(i, 5) = Round(bmi, 1) 'BMI(小数点1桁)をセルに挿入
'判定基準(日本肥満学会)
If bmi < 18.5 Then
.Cells(i, 6) = "低体重(痩せ型)"
ElseIf bmi >= 18.5 And bmi < 25 Then
.Cells(i, 6) = "普通体重"
ElseIf bmi >= 25 And bmi < 30 Then
.Cells(i, 6) = "肥満(1度)"
ElseIf bmi >= 30 And bmi < 35 Then
.Cells(i, 6) = "肥満(2度)"
ElseIf bmi >= 35 And bmi < 40 Then
.Cells(i, 6) = "肥満(3度)"
ElseIf bmi >= 40 Then
.Cells(i, 6) = "肥満(4度)"
End If
Else
.Cells(i, 5) = "エラー"
.Cells(i, 6) = "エラー"
End If
End If
Next i
End With
MsgBox "BMIを計算しました。"
End Sub
これでコードの入力を終了です。エディターを閉じて実際にマクロを実行してみましょう。
実行
「BMI計算」ボタンをクリックしてください

マクロが実行されてE列にBMI、F列に判定基準が自動で入力されました!

まとめ
いかがでしたでしょうか。ExcelでBMIを自動計算できれば、データの処理がグッと楽になります。
手動で従業員の健康管理データを処理している方などにおすすめです。ぜひご活用ください。
BMI計算方法について
今回のBMIおよび判定基準の計算方法については「keisanサイト」様が掲載しているBMIと日本肥満学会の判定基準の計算方法を参考にしております。
参考にしたページは下記となります

コメント