第20講 電卓を作ろう!
第11話 変更点の解説
コード再掲
Dim w As Double
, v As Double, h As Byte, b As Byte    '2012/04/14に間違いを訂正
      ・
      ・
      ・
Private Sub CommandButton13_Click()        '2012/04/14に間違いを訂正
  If b = 1 Then
    If h = 1 Then
      v = v * w
      TextBox1.Text = v
    End If
    If h = 2 Then
      v = v / w
      TextBox1.Text = v
    End If
    If h = 3 Then
      v = v + w
      TextBox1.Text = v
    End If
    If h = 4 Then
      v = v - w
      TextBox1.Text = v
    End If
  Else
    v = v + w
    b = 1
  End If
  h = 1
  w = 0
  k = 0
  a = 0
End Sub
Private Sub CommandButton14_Click()
  If b = 1 Then
    If h = 1 Then
      v = v * w
      TextBox1.Text = v
    End If
    If h = 2 Then
      v = v / w
      TextBox1.Text = v
    End If
    If h = 3 Then
      v = v + w
      TextBox1.Text = v
    End If
    If h = 4 Then
      v = v - w
      TextBox1.Text = v
    End If
  Else
    v = v + w
    b = 1
  End If
  h = 2
  w = 0
  k = 0
  a = 0
End Sub
Private Sub CommandButton15_Click()
  If b = 1 Then
    If h = 1 Then
      v = v * w
      TextBox1.Text = v
    End If
    If h = 2 Then
      v = v / w
      TextBox1.Text = v
    End If
    If h = 3 Then
      v = v + w
      TextBox1.Text = v
    End If
    If h = 4 Then
      v = v - w
      TextBox1.Text = v
    End If
  Else
    v = v + w
    b = 1
  End If
  h = 3
  w = 0
  k = 0
  a = 0
End Sub
Private Sub CommandButton16_Click()
  If b = 1 Then
    If h = 1 Then
      v = v * w
      TextBox1.Text = v
    End If
    If h = 2 Then
      v = v / w
      TextBox1.Text = v
    End If
    If h = 3 Then
      v = v + w
      TextBox1.Text = v
    End If
    If h = 4 Then
      v = v - w
      TextBox1.Text = v
    End If
  Else
    v = v + w
    b = 1
  End If
  h = 4
  w = 0
  k = 0
  a = 0
End Sub

Private Sub CommandButton17_Click()
      ・
      ・
      ・
  b = 0
End Sub


解説
変更した理由は、普通の電卓では変更電卓初期化入門と押したとき、
7→5→12と表示されますが、そうなっていなかったからです。
要するに×÷+−が2回目に押されたときは、=の働きをもたせる必要があるからです。
b As Byteは、1回目か2回目以降かを区別するための変数です。
このコーティングでは、b = 0のときに1回目、b = 1のときに2回目以降の役割を持たせています。
ただし、=またはCEが押されたときはb = 0として初期化しています。



第11話へ 第21講第1話へ

004
  

VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る