コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

きっと何者にもなれない僕だから

ボディマスに興味はないけどエクセルでBMIなど求めてみた

BMIってボディマス指数のことらしいですよ

興味が無いから日本独自の基準かと思って調べてみたら、WHOで定めた国際基準のことでした。
計算方法は以下の通りとなります。
  BMI = 体重[kg] ÷ (身長[m])^{2}

なんで日本独自の基準という感覚をもっていたのだろうかと調べてようやくわかったよ。
計算方法は世界共通だけど、肥満の度合いは国によってまちまちだったからだ。そのせいで、日本でしか通じない指標だと思っていたんだと思う。

さてそんなBMIを求めるプログラムをつくってみようと思う

なぜプログラム作ろうかと思ったかというと、ちょうどこちらでVBA講座をやっていたのでやってみました。
PC独習室

問題はこちらより。ただし、出題通りの処理はしてないから注意してね。
ExcelVBA入門 変数


つくりました。
f:id:andron:20160910213615p:plain

計算ボタンを押すと、次のようにメッセージが表示され、BMI値が出力されます。
f:id:andron:20160910213701p:plain
f:id:andron:20160910213704p:plain

ちなみに、クリアボタンを押すと最初の画像のような状態に戻るよ。


以下ソースコード

Private Sub BMI_calc_Click()
  Dim Weight As Single
  Dim Height As Single
  Dim BMI As Single
  Height = Worksheets("BMI_Sheets").Range("F3")
  Weight = Worksheets("BMI_Sheets").Range("F4")
    
  '例外処理
  If Range("F3").Value = "" Or Range("F4").Value = "" Then
    MsgBox "値が入力されていません", , "エラー"
    Exit Sub
  End If
  
  'BMI処理
  BMI = Weight / (Height / 100) ^ 2
  BMI = Round(BMI, 2)
  
  Range("F6") = BMI
  If BMI < 20 Then
    Range("F7") = "痩せすぎ"
  ElseIf BMI >= 20 And BMI < 24 Then
    Range("F7") = "適正"
  ElseIf BMI >= 24 And BMI < 26.4 Then
    Range("F7") = "太り気味"
  ElseIf BMI >= 26.4 Then
    Range("F7") = "肥満"
  End If

  
  MsgBox "あなたのBMIは" & BMI & "です。", , "BMI 計算結果"
End Sub
Private Sub Clear_Click()
  Range("F3").Clear
  Range("F4").Clear
  Range("F6").Clear
  Range("F7").Clear
  
End Sub

コマンドボタンを配置して、ソースコピペすれば完成だよ。丸め処理が適当だったりと思うことはあるけどね。