|
こんにちは。tokiと申します。教えてください。
ユーザーフォームにて、テキストボックスが3つあるとします。
ウェイト1
ウェイト2
ウェイト3
このとき、
1.各テキストボックスに未入力時はエラーを出す。
2.各テキストボックスの数値合計が100以外のときはエラーを出す。
というコードを記述しています。
しかし、合計が100になる数値を入れても処理がすすまず、エラーが出てしまいます。
デバッグで変数の格納値を見てみたところ、 Goukei = Wcomi + Wcomp + Wvalueのところが文字列の結合になってしまってました。
つまり
ウェイト1=50
ウェイト2=30
ウェイト3=20
Goukei=503020
という状況です。
そこで、変数のデータ型をByte型に変更してみました。
しかし、「データ型が一致しません」というエラーが出てしまいます。
黄色反転個所⇒ If Wcomi = "" Then
どこがまずいのでしょうか?
**************************************************************************************
Private Sub 登録ボタン_Click()
'ウェイト
Dim Wcomi As Variant
Dim Wcomp As Variant
Dim Wvalue As Variant
Dim Goukei As Variant
Wcomi = ウェイト1.Text
Wcomp = ウェイト2.Text
Wvalue = ウェイト3.Text
Goukei = Wcomi + Wcomp + Wvalue
'テキストBOXが空白の場合は、登録できないようにする。
If Wcomi = "" Then
MsgBox "ウェイト1を入力してください。", vbExclamation, "登録できません。"
Exit Sub
ElseIf Wcomp = "" Then
MsgBox "ウェイト2を入力してください。", vbExclamation, "登録できません。"
Exit Sub
ElseIf Wvalue = "" Then
MsgBox "ウェイト3を入力してください。", vbExclamation, "登録できません。"
Exit Sub
ElseIf Goukei <> 100 Then
MsgBox "ウェイト合計は100になるように設定してください。", vbExclamation, "登録できません。"
Exit Sub
Else
'処理
End If
|
|