[[20050126061936]] 『テキストボックスの計算方法』(ド素人) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『テキストボックスの計算方法』(ド素人)

初めまして。わからないので、どなたかお教え下さい。

ユーザーフォームにテキストボックス1〜3があります。テキストボックス1,2に数値を入力する形になっています。ここで、TextBox3 = TextBox1 / textBox2 としたときに、テキストボックス3の計算結果を、小数点以下第2位までに、四捨五入、切捨て、切り上げする方法を教えてください。

よろしく御願いします。


 round関数でできませんか?

 入力に対する規制やエラー処理などがそれなりに必要になりますね。
  (INA) 

 四捨五入の場合はこんな感じですが、
Me.TextBox3.Value = WorksheetFunction.Round(Me.TextBox1.Value / Me.TextBox2.Value, 2)
テキストボックスの値が数値に変換できないような文字である場合には
エラーとなるので、Isnumericなどでそれぞれの値をチェックする
必要はあります。
(みやほりん)

 こういう塩梅でせうか
 '-----------------
 Private Sub TextBox1_AfterUpdate()
    On Error Resume Next
    If IsNumeric(TextBox2.Text * 1) Then
        TextBox3.Text = Application.WorksheetFunction.Round(TextBox1.Text * 1 / TextBox2.Text * 1, 2)
    End If
    On Error GoTo 0
 End Sub
 '--------------------------
 Private Sub TextBox1_Change()
    If TextBox1.Text = "" Then TextBox3.Text = ""

 End Sub
 '---------------------------
 Private Sub TextBox2_AfterUpdate()
    On Error Resume Next
    If IsNumeric(TextBox1.Text * 1) Then
        TextBox3.Text = Application.WorksheetFunction.Round(TextBox1.Text * 1 / TextBox2.Text * 1, 2)
    End If
    On Error GoTo 0
 End Sub
 '--------------------------
 Private Sub TextBox2_Change()
    If TextBox2.Text = "" Then TextBox3.Text = ""
 End Sub
    (弥太郎)

 未入力に対しては、エラー処理。
 数値入力に対しては、入力値を判別せずに、
 入力規制をかけた方がベターだと思います。
 以前回答したから、たぶん過去ログにあると思います。
  (INA)

 このスレッドのことかな?
[[20041026102453]] 『VBA:TextBoxの流れ』(さんちゃん) 
KeyPressイベントでの入力規制ですね。
(みやほりん)

みなさまからの多くの御回答、ありがとうございます。

出来そうです。早速やってみます。    (ド素人)


 ペーストされたときのために、テキスト変更時のチェックも必要だと思いますよ。 (wizik)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.