Private Sub CalcButton_Click(sender As Object, e As EventArgs) Handles CalcButton.Click
' ここに処理を書く
End Sub
要素
意味
Private
フォーム外からは呼び出させない(フォーム内専用)
Sub
戻り値を返さない手続き(サブルーチン)
sender As Object
どのオブジェクトから呼ばれたか(今回は CalcButton)
e As EventArgs
追加情報(クリック時の状態など)
Handles CalcButton.Click
このメソッドを CalcButton の Click イベントに結び付ける。
5.3 .実装する処理の流れ
画面の文字列を取得(HeightTextBox.Text、WeightTextBox.Text)
Double.TryParse で数値に安全変換(失敗ならメッセージで案内)
0 以下や極端な値をガード(早期リターン)
BMI を計算:体重(kg) ÷ (身長(m)²)
小数第1位に丸めて BmiTextBox に表示
判定メッセージを ResultLabel に表示
5.4. サンプルコード(Form:MainForm.vb)
⑥で分岐ロジックをさらに整理・拡張しますが、ここでは完走できる実装を提示します。
Option Strict On
Option Infer On
Public Class MainForm
Private Sub CalcButton_Click(sender As Object, e As EventArgs) Handles CalcButton.Click
' 1) 入力の取得と検証
Dim heightCm As Double
Dim weightKg As Double
If Not Double.TryParse(HeightTextBox.Text, heightCm) Then
MessageBox.Show("身長は半角の数字で入力してください。", "入力エラー")
HeightTextBox.Focus()
HeightTextBox.SelectAll()
Exit Sub
End If
If Not Double.TryParse(WeightTextBox.Text, weightKg) Then
MessageBox.Show("体重は半角の数字で入力してください。", "入力エラー")
WeightTextBox.Focus()
WeightTextBox.SelectAll()
Exit Sub
End If
If heightCm <= 0 OrElse weightKg <= 0 Then
MessageBox.Show("身長と体重は 0 より大きい値を入力してください。", "入力エラー")
Exit Sub
End If
' 2) BMI 計算(身長は m 単位に変換)
Dim hMeter = heightCm / 100.0
Dim bmi = weightKg / (hMeter * hMeter)
' 3) 表示整形(小数第1位、0.0 形式)
Dim bmiRounded = Math.Round(bmi, 1, MidpointRounding.AwayFromZero)
BmiTextBox.Text = bmiRounded.ToString("0.0")
' 4) 判定メッセージを表示
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