【ExcelVBA・マクロ】エクセルでBMIを自動計算する方法

ExcelVBA

「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と日本肥満学会の判定基準の計算方法を参考にしております。

参考にしたページは下記となります

BMIと適正体重
身長と体重から肥満度を示すBMIと適正体重を計算します。

コメント

タイトルとURLをコピーしました