Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


52180 / 76732 ←次へ | 前へ→

【29394】算術式のデータ型
質問  toki  - 05/10/4(火) 12:48 -

引用なし
パスワード
   こんにちは。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
1 hits

【29394】算術式のデータ型 toki 05/10/4(火) 12:48 質問
【29395】Re:算術式のデータ型 年寄り 05/10/4(火) 13:10 発言
【29407】Re:算術式のデータ型 toki 05/10/4(火) 15:21 お礼
【29397】Re:算術式のデータ型 Jaka 05/10/4(火) 13:41 発言
【29406】Re:算術式のデータ型 toki 05/10/4(火) 15:20 お礼

52180 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free