[リストへもどる]
一括表示

投稿時間:2003/08/18(Mon) 22:09
投稿者名:たけちゃん
Eメール:
URL :
タイトル:
計算結果がなぜか0になる??
こんばんは、先日はありがとうございました。
この度、自分で試しにコーディングしたのですが、どうしても
計算結果が0になりますが、どうしてですか?
データ型宣言がおかしいのですか?
少し長いですが、下記にコーディングを書いておきます。
Private Sub Command1_Click()
Dim u As Double
    u = s + t
    Debug.Print u
End Sub

Private Sub Text1_Change()
    If Len(Text1.Text) >= 3 Then
        Text2.SetFocus
    End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
Dim s As Double
    If KeyAscii = vbKeyReturn Then
        KeyAscii = 0
        s = Val(Text1.Text & "." & Text2.Text)
        Debug.Print s
        Text3.SetFocus
    End If
End Sub
Private Sub Text3_Change()
    If Len(Text3.Text) >= 2 Then
        Text4.SetFocus
    End If
End Sub
Private Sub Text4_KeyPress(KeyAscii As Integer)
Dim t As Double
    If KeyAscii = vbKeyReturn Then
        KeyAscii = 0
        t = Val(Text3.Text & "." & Text4.Text)
        Debug.Print t
        Command1.SetFocus
    End If
End Sub

投稿時間:2003/08/18(Mon) 22:46
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 計算結果がなぜか0になる??
説明はしませんので、ご自分で考えて下さい。

Option Explicit
Private s As Double
Private t As Double

Private Sub Command1_Click()
    Dim u As Double
    u = s + t
    Debug.Print u
End Sub

Private Sub Text1_Change()
    If Len(Text1.Text) >= 3 Then
        Text2.SetFocus
    End If
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        KeyAscii = 0
        s = Val(Text1.Text & "." & Text2.Text)
        Debug.Print s
        Text3.SetFocus
    End If
End Sub

Private Sub Text3_Change()
    If Len(Text3.Text) >= 2 Then
        Text4.SetFocus
    End If
End Sub

Private Sub Text4_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
        KeyAscii = 0
        t = Val(Text3.Text & "." & Text4.Text)
        Debug.Print t
        Command1.SetFocus
    End If
End Sub

投稿時間:2003/08/18(Mon) 23:23
投稿者名:たけちゃん
Eメール:
URL :
タイトル:
ありがとうございました。
こんばんは、花さん。
早速のレスありがとうございました。

> Option Explicit
> Private s As Double
> Private t As Double

 データの宣言は、個々のプロシージャの中で、宣言せず、
 全体の中で宣言しないと、認識できませんね。
 ありがとうございました。

ほんとに、たびたびすみません。ご多忙中のところ!!
深く感謝いたします。
今後ともよろしくお願いします。

投稿時間:2003/08/19(Tue) 12:57
投稿者名:たけちゃん
Eメール:
URL :
タイトル:
四捨五入は?
こんにちは。
一応、BMIのプログラムは完成したのですが、四捨五入のコーディングを
下記のようにしたのですが、どうでしょうか?
小数点第2位を四捨五入したいのですが。

Label1.Caption = Format(BMI, "#.#")

投稿時間:2003/08/19(Tue) 13:12
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: 四捨五入は?
> 一応、BMIのプログラムは完成したのですが、四捨五入のコーディングを
BMI?

> 小数点第2位を四捨五入したいのですが。
> Label1.Caption = Format(BMI, "#.#")
このコード自体は、あながち間違いとも言えないのですが、
『Service Packの当たっていない Windows XP』上で実行した場合は、
四捨五入ではなく、偶数丸めになってしまうという点に注意してください。
http://support.microsoft.com/default.aspx?scid=kb;ja;JP418691

投稿時間:2003/08/19(Tue) 14:56
投稿者名:たけちゃん
Eメール:
URL :
タイトル:
Re^2: 四捨五入は?
こんにちは、はじめまして、魔界の仮面弁士さん。
早速のレスありがとうございました。

> BMI?

 これは、body mass index の略で、体格指数です。身長、体重から
 計算できます。
 
 BMI=体重(kg)/身長(m)/身長(m)


> > Label1.Caption = Format(BMI, "#.#")
> このコード自体は、あながち間違いとも言えないのですが、
> 『Service Packの当たっていない Windows XP』上で実行した場合は、
> 四捨五入ではなく、偶数丸めになってしまうという点に注意してください。

 Windows98,Meならこのままでいけるわけですね?
 Xp上では、SP1なら実行可能ですね?