ここでは、Visual Studio Community 2022(以下 VS Community 2022)と Visual Basic 2022 を用いて、「BMI を算出してメッセージで結果を示す」最小構成の Windows フォームアプリを完成イメージから逆算して設計・実装します。完成イメージを具体化することで、後続の画面設計・入力処理・イベント処理・分岐・サブルーチン化へと自然に接続できるようにします。
1.完成イメージと作成フロー
BMI(Body Mass Index)= 体重(kg) ÷ [身長(m)²] を計算し、数値と判定を画面に表示します。ボタンを押すだけで動作する、単純・明快・安全(TryParse による入力検証)を目指します。
Option Strict On
Option Infer On
Public Class Form1
Private Sub CalcButton_Click(sender As Object, e As EventArgs) Handles CalcButton.Click
' 入力を取得(cm, kg)
Dim hCm As Double
Dim wKg As Double
If Not Double.TryParse(HeightTextBox.Text, hCm) _
OrElse Not Double.TryParse(WeightTextBox.Text, wKg) Then
MessageBox.Show("数値として認識できません。半角の数字で入力してください。", "入力エラー")
Exit Sub
End If
If hCm <= 0 OrElse wKg <= 0 Then
MessageBox.Show("身長と体重は 0 より大きい値を入力してください。", "入力エラー")
Exit Sub
End If
' BMI 計算:体重(kg) ÷ (身長(m)^2)
Dim hMeter = hCm / 100.0
Dim bmi = wKg / (hMeter * hMeter)
' 小数第1位で丸めて表示(例:23.4)
Dim bmiRounded = Math.Round(bmi, 1, MidpointRounding.AwayFromZero)
BmiTextBox.Text = bmiRounded.ToString("0.0")
' 判定メッセージ(例)
ResultLabel.Text = GetBmiCategory(bmiRounded)
End Sub
' 判定ロジック(閾値は例。必要に応じて基準を差し替え可能)
Private Function GetBmiCategory(bmi As Double) As String
If bmi < 18.5 Then
Return "やせ気味です。体調管理に注意しましょう。"
ElseIf bmi < 25.0 Then
Return "標準です。現在の生活リズムを維持しましょう。"
ElseIf bmi < 30.0 Then
Return "やや高めです。食事と運動のバランスを意識しましょう。"
Else
Return "高めです。専門家への相談を検討してください。"
End If
End Function
End Class