やさしい電卓 数字0ボタン [VB]

VB2012-2017

0ボタンの追加

数字1ボタン、数字2ボタン、数字3ボタン、+ボタン、Cボタン、=ボタンのみを使った簡易電卓プログラムに、数字0ボタンを追加して、数字0ボタンクリック処理のプログラムを作成します。

数字0ボタンクリック処理は、数字1ボタン~数字3ボタンのクリック処理と少し違うので、注意してください。

電卓画面

数字0ボタンのプロパティ設定値とボタンクリック処理の概要

コントロール プロパティ 設定値 BtnZeroクリック処理
BtnZero Text 0 LblAnserが0なら、そのまま0を表示
それ以外は、末尾に0を追加表示

簡易電卓の仕様と、これまでに作成したプログラムはこちら。

数字0ボタンクリック処理プログラム

数字0ボタンをダブルクリックして、0ボタンクリック処理のプログラムを記述します。

BtnZeroボタンクリック処理を、これまでの数字1~3と同じようにプログラミングすると、0を表示しているときに、連続で0を入力すると、00000のような表示になってしまいます。これを0と表示したままになるように修正します。

  • まず、直前に押されたボタンが数字なら(If beforeIn >= "0" And beforeIn <= "3" Then)の後に、他の数字ボタンと同じように、LblAnserのTextプロパティの末尾に"0"を追加します。
  • さらに入力数値の桁数が8桁になったら、それ以上は追加しないように、最後にbeforeIn変数に"0"を保存するようにプログラミングします。
  • 前回押されたボタンが数字以外なら(Else)の後に、LblAnser.Text = "0"とプログラムすれば、連続0の表示を防ぐことができます。
  • beforeIn変数に "0" を代入しなければ、beforeIn変数には、数字以外(C, +, -, =)が入っており、常に0が表示されます。
' 数字0ボタンクリック処理
Private Sub BtnZero_Click(sender As Object, e As EventArgs) Handles BtnZero.Click

    If beforeIn >= "0" And beforeIn <= "3" Then
        If  LblAnser.Text.Length < 8 Then
            LblAnser.Text &= "0"
        End If
        beforeIn = "0"
    Else
        LblAnser.Text = "0"
    End If

End Sub

【今まで作成したプログラムの修正】

BtnOne、BtnTwo、BtnThree、BtnPlus、BtnEqualのクリック処理

If beforeIn >= "1" And beforeIn <= "3" Then

の判定文を、0を含めて判定できるように

If beforeIn >= "0" And beforeIn <= "3" Then

と修正します。

BtnTwoボタンクリック処理を修正すると次のようになります。他のボタンのクリック処理も同様に修正します。

' 数字2ボタンクリック処理
Private Sub BtnTwo_Click(sender As Object, e As EventArgs) Handles BtnTwo.Click

    If beforeIn >= "0" And beforeIn <= "3" Then  ' 修正行
        If LblAnser.Text.Length < 8 Then
            LblAnser.Text &= "2"
        End If
    Else
        LblAnser.Text &= "2"
    End If
    beforeIn = "2"

End Sub

これで数字0ボタンを追加した簡単電卓プログラムを実行して動作を確認してみてください。特に、0の表示が正しく表示されることを確認してください。