このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【6日でできるVisual Basic2022入門】④入力データの取り出し方法

④入力データの取り出し方法

 ここでは配置した TextBox から文字列を取得し、数値に安全に変換して変数へ格納するところまでを整理します。以降の章(⑤ クリック時の処理、⑥ 分岐、⑦ サブルーチン)でそのまま使える形にします。

4.入力データの取り出し方法

4.1. コントロールから値を読む基本

対象取得先説明
身長(cm)HeightTextBox.TextString画面の入力は文字列として得られる。
体重(kg)WeightTextBox.TextString同上
BMI 表示欄BmiTextBox.TextString計算後に文字列で書き戻す。

ポイント

  • 画面から得られるのは文字列(String)。計算するには Double などの数値型へ変換が必要。
  • 変換は TryParse を使用すると安全(失敗時に例外を出さずに False を返す)。

4.2. 変数と代入(Visual Basic 2022 の基本構文)

構文/キーワード役割ミニ例
Dim 変数名 As 型変数の宣言Dim heightCm As Double
=(代入)右辺の値を左辺の変数へ代入heightCm = 170.0
Option Strict On暗黙変換の禁止(推奨)プロジェクト設定またはファイル先頭で指定

記法(値の取り出しと代入の基本形)

変数名 = コントロール名.プロパティ名

4.3. 文字列→数値の安全な変換:TryParse

メソッド役割戻り値使いどころ
Double.TryParse(String, ByRef Double)文字列を Double に変換成功: True / 失敗: False数値入力検証の第一選択肢

TryParse

Dim heightCm As Double
If Not Double.TryParse(HeightTextBox.Text, heightCm) Then
    ' 変換失敗(数字でない、空、桁区切り誤り 等)
End If

解説

HeightTextBox.Text(テキストボックス内の文字列)を数値に変換し、成功すればその数値が heightCm に格納され、失敗すれば変換エラーの処理に入ります。

4.4. 取得から表示まで(最小スニペット:まだ計算はしない)

 次章でクリックイベントに組み込みますが、ここでは「取り出し → 変換 → 表示の整形」までを単体で確認します。

List 4-1:値の取り出しと検証・整形(Form 内のメソッド例)

Option Strict On
Option Infer On

Private Sub PreviewInputs()
    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

    ' ここでは確認のために「正規化された文字列」を BMI 表示欄へ出すだけ
    HeightTextBox.Text = heightCm.ToString("0.##")
    WeightTextBox.Text = weightKg.ToString("0.##")
    BmiTextBox.Text = ""  ' 計算は次章で実装
End Sub

4.5. よく使う数値整形(ToString と書式指定)

目的記法表示例
小数第1位まで"0.0"bmi.ToString("0.0")22.5
小数第2位まで"0.00"bmi.ToString("0.00")22.46
桁区切り"N1"value.ToString("N1")1,234.6

4.6 .コントロールとプロパティの対応(本章の焦点)

No.コントロール名読み取り(→変数)書き込み(←文字列)備考
HeightTextBoxHeightTextBox.TextHeightTextBox.Text = ...文字列として扱う
WeightTextBoxWeightTextBox.TextWeightTextBox.Text = ...同上
BmiTextBox-BmiTextBox.Text = ...ReadOnly=True 推奨

4.7. 例:取り出し→BMI を計算→整形して表示(動作確認用の暫定版)

 完成形は次章以降で整理しますが、流れをつかむために「取り出し→計算→表示」までのひとつながりを示します。

List 4-2:取り出しから表示まで(クリック時の暫定例)

「Public Class MainForm」に実装する際には「MainForm_Load」イベントのコードの後に追加します。

以下の行は、コメントアウトするか削除します。

Option Strict On '「Class MainForm」に組み込む際は削除します。
Option Infer On  '「Class MainForm」に組み込む際は削除します。
Option Strict On '「Class MainForm」に組み込む際は削除します。
Option Infer On  '「Class MainForm」に組み込む際は削除します。

Private Sub CalcButton_Click(sender As Object, e As EventArgs) Handles CalcButton.Click
    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

    Dim h As Double = heightCm / 100.0
    Dim bmi As Double = weightKg / (h * h)

    BmiTextBox.Text = bmi.ToString("0.0")  ' 小数第1位
    ' 判定表示は次章(⑤ クリック時の処理)で本格実装
End Sub

4.8. 本章で登場した Visual Basic 2022 の命令・構文解説

命令/構文説明使い方の要点
Dim / As変数宣言Dim weightKg As Double
Double.TryParse文字列を Double に安全変換失敗時 False。例外を出さないため UI 入力に適する。
ToString("書式")数値を書式付き文字列へ"0.0", "0.00", "N1"
MessageBox.Show入力エラーのユーザー通知エラーの内容をわかりやすい説明とタイトル
Focus / SelectAll誤入力欄へカーソルをフォーカスして入力値を選択入力修正の UX 向上
Exit Sub以降の処理を中断失敗時は早期リターンで読みやすく

4.9. つまずき対策

症状原因・対策
文字列をそのまま足し算してしまう。文字列同士は結合になることがある。必ず TryParse で数値化してから計算
小数点の入力でエラー全角の「.」や「,」が混ざると失敗。エラー文で「半角数字」を明記
BMI 表示欄に入力できる。BmiTextBox.ReadOnly=TrueTabStop=False を設定
Enter で実行されない。フォームの AcceptButton=CalcButton を設定

まとめ

  • 画面の入力は 必ず文字列。計算前に TryParse数値へ変換 し、失敗時は丁寧にエラーを返す。
  • 表示は ToString("0.0") などで書式を揃えると見やすい。
  • FocusSelectAll で再入力を促すと UX が向上。
  • 次章「⑤ ボタンをクリックしたときの処理」では、本章の取り出し処理をイベントハンドラーに整理し、判定メッセージの表示まで仕上げます。