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

投稿時間:2003/04/02(Wed) 12:35
投稿者名:zkei
Eメール:
URL :
タイトル:
結果表示が不正確
vb初心者です。いつも 問題があります。教えてください。
次のプログラムはボタンをクリクしてから、結果はいつも
「まちがいー(正解は" & A*Dの値 & "でした!)」と言います。
なぜですか?

Private Sub Command2_Click()
Dim A, B, C, D As Long
Dim Q As Integer
C = 0
Start:
MsgBox "はじめます。"
A = InputBox("好きな数字を入力してください。", スタート, "半角数字を入力してね")
D = Int(Rnd * 10) + 1
B = InputBox(A & "×" & D & "は?", "?", "半角数字を入力してね")

If A * D = B Then
MsgBox "A * D"
MsgBox "B"
MsgBox "正解!"
C = C + 5
Label1.Caption = "ポイント:" & C
Else
MsgBox "まちがいー(正解は" & A * D & "でした!)"
C = C - 3
Label1.Caption = "ポイント:" & C
End If

Q = MsgBox("まだやる?", vbYesNo, "??")
If Q = vbYes Then GoTo Start

End Sub

投稿時間:2003/04/02(Wed) 12:54
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re: 結果表示が不正確
InputBox関数の戻り値は文字列型です。
変数の宣言で

> Dim A, B, C, D As Long

としてますが、これはA,B,C,D全部がLong型になるのではなく
DだけがLong型になりA,B,CはVariant型になります。
したがってA,Bには、Input関数の戻り値の文字列が入ります。

> If A * D = B Then

A * Dは数値になりますが、Bは文字列扱いなので等しくならず
結果はいつも「まちがい」になります。

変数の宣言を
Dim A As Long, B As Long, C As Long, D As Long
とするとうまくいきます。

投稿時間:2003/04/02(Wed) 14:09
投稿者名:zkei
Eメール:
URL :
タイトル:
Re^2: 結果表示が不正確
なるほど。もう できます。
どうも ありがとう