dポイントプレゼントキャンペーン実施中!

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

A 回答 (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
    • good
    • 0

>コードが知りたい


ネットでサンプルを探せばいいでしょう。
VBHelperさんの Build a calculator とか

参考URL:http://www.vb-helper.com/howtoint.htm
    • good
    • 0

 1)まず=を認識したいという事は「Enter」を=の代わりにしたいという事ですよね。


 これは1文字取得した時にchr$(13)が「Enter」の内部コードです

 2)数字は10桁までというのは、1文字づつキー入力して、例えばcountという変数に+1します、この変数を10以上はエラーとします。
 ちなみにDELは-1とします。
    • good
    • 0

>基本的なことしか習っていないのでC言語はわかりません。



VBは C言語ではなく Basicです。

入力の仕方は、どうやってるのかな?
入力された文字数をチェックすればいいと思います。

普通は、キー入力のイベントで 入力された文字をチェックし、表示、処理をさせるはずです。
その時に入力して表示できた文字数をカウントしておけば
問題ないはずです。
    • good
    • 0

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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!