• 締切済み

VBで電卓の=

VisualBasicで電卓を作っています。 それで11桁数字を入力すると”数字は10桁まで”と表示されるようにする事と=がちゃんと機能するようなコードが知りたいんです. 基本的なことしか習っていないのでC言語はわかりません。 とても困ってます。教えてください。 (^人^)お、ね、が、い

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

フォームにテキストボックスを2つ、コマンドボタンを5つ貼りつけ。 Text2は答え表示用。ボタンは演算子用+-*/と=用で、キャプションをそれぞれそれらにします。 Public c, a Private Sub Form_Load() Text1.Text = "" End Sub '------ Private Sub Command1_Click() a = Text1.Text Text1.Text = "" c = 1 End Sub '------- Private Sub Command2_Click() a = Text1.Text Text1.Text = "" c = 2 End Sub '-------- Private Sub Command3_Click() a = Text1.Text Text1.Text = "" c = 4 End Sub '-------- Private Sub Command4_Click() a = Text1.Text Text1.Text = "" c = 3 End Sub '--------- Private Sub Command5_Click() b = Text1.Text Text1.Text = "" '----- Select Case c Case 1 x = Val(a) + Val(b) Case 2 x = Val(a) - Val(b) Case 3 x = Val(a) * Val(b) Case 4 x = Val(a) / Val(b) End Select Text2.Text = x a = "" c = 0 End Sub '------ Private Sub Text1_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case Asc("0") To Asc("9") If Len(Text1.Text) > 11 Then MsgBox "11桁オーバー" End If Case 127, 8, 10, 13 Case Else MsgBox "数字でない" KeyAscii = "" End Select End Sub

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.4

>コードが知りたい ネットでサンプルを探せばいいでしょう。 VBHelperさんの Build a calculator とか

参考URL:
http://www.vb-helper.com/howtoint.htm
  • ginyou
  • ベストアンサー率32% (138/431)
回答No.3

 1)まず=を認識したいという事は「Enter」を=の代わりにしたいという事ですよね。  これは1文字取得した時にchr$(13)が「Enter」の内部コードです  2)数字は10桁までというのは、1文字づつキー入力して、例えばcountという変数に+1します、この変数を10以上はエラーとします。  ちなみにDELは-1とします。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

>基本的なことしか習っていないのでC言語はわかりません。 VBは C言語ではなく Basicです。 入力の仕方は、どうやってるのかな? 入力された文字数をチェックすればいいと思います。 普通は、キー入力のイベントで 入力された文字をチェックし、表示、処理をさせるはずです。 その時に入力して表示できた文字数をカウントしておけば 問題ないはずです。

回答No.1

Private Sub Text1_Change()   Dim i As Long   i = Len(Me.Text1.Text)   If i > 10 Then     MsgBox("数字は10桁まで", vbExclamation)     Me.Text1.Text = Mid(Me.Text1.Text, 1, Len(Me.Text1.Text) - 1)     SendKeys ("{END}")   End If End Sub Private Sub Text1_KeyPress(KeyAscii As Integer)   If KeyAscii = Asc("=") Then     MsgBox "= です"   End If End Sub