

1)ユーザーフォーム上のTextBox1に入力された数値とTextBox2に入力された数値の大小の比較を下記のような感じで行ってみたところ、40>300や50>100という感じの結果になってしまいます(ゼロを無視してる?)プロパティは.Valueと.Textの両方を試してみたのですが、同じような結果だったと思います。正しい結果を出すにはどうすればよいのでしょうか。
If UserForm1.TextBox1.Value>UserForm1.TextBox2.Value
then~
2)変数を宣言して、その変数にTextBox1の内容(数値)を代入する場合、Integer型等とTextBox型のどちらとして宣言するのが正しいのでしょうか。
以上二点、よろしくお願いします。(Excel2000使用)

No.1ベストアンサー
- 回答日時:
実は俺も知らなかったんですが、今実験したらおっしゃる状況が再現しました
Option Explicit
Private Sub CommandButton1_Click()
If UserForm1.TextBox1.Value > UserForm1.TextBox2.Value Then
MsgBox ("TextBox1の方が大きい")
End If
End Sub
TextBox1.valueが40
TextBox2.valueが200
のとき、Msgboxが表示されました。
(多分文字列型としてASCIIコードか何かを比較しているのでしょう。)
そこで
Option Explicit
Private Sub CommandButton1_Click()
If CInt(UserForm1.TextBox1.Value) > CInt(UserForm1.TextBox2.Value) Then
MsgBox ("TextBox1の方が大きい")
End If
End Sub
とすることで、大小比較がうまくいくようになりました。
変数に数字として代入する時は
Private Sub hoge()
Dim a as Integer
a = CInt(TextBox1.Value)
End Sub
がいいと思います
No.2
- 回答日時:
テキストボックスは文字通り入力した値が文字型で得られます。
従って、文字列比較で先頭の文字が4と2では2の方が小さいと判定されます。ですから
Private Sub TextBox1_Change()
If IsNumeric(UserForm1.TextBox1.Text) And IsNumeric(UserForm1.TextBox2.Text) Then
If CSng(UserForm1.TextBox1.Text) > CSng(UserForm1.TextBox2.Text) Then
処理1
Else
処理2
End If
End If
End Sub
のように数字と判定できるなら型変換して比較するのがよいと思います。
整数しか入らないならCintでも可です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
テキストボックスの値同士を比較したい
JavaScript
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
文字列の比較
Visual Basic(VBA)
-
4
テキストボックスの値を変数に代入したい。
Visual Basic(VBA)
-
5
TextBoxから数字が文字として入力される?
Visual Basic(VBA)
-
6
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
7
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
8
ユーザーフォームのコピー?
Excel(エクセル)
-
9
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
10
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
11
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
12
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
13
Excel VBA でテキストボックスの値をセルA列から検索
その他(プログラミング・Web制作)
-
14
エクセルからアクセスにインポートすると、エラーが出てしまいます。原因を教えていただけませんか。
Access(アクセス)
-
15
数字以外の入力をエラーにするには?
Visual Basic(VBA)
-
16
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
17
ユーザーフォームのTextに数値を入れるとセルにエ
Excel(エクセル)
-
18
データベースのINT型項目にNULLはNG?
MySQL
-
19
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
20
VBA テキストボックスの計算
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
平衡定数の求め方について、ΔG=...
-
5
x^nを(x-1)^2(x-2)で割ったとき...
-
6
次の関数の組が線形独立である...
-
7
Excel VBAで1行に2つのコードを...
-
8
単位法線ベクトルの求め方
-
9
SPIの問題
-
10
数学 因数分解x∧3-12x+16=0を因...
-
11
整数の問題です。(10^n)+1は素...
-
12
x、yの値の求め方を教えてくだ...
-
13
TextBox1とTextBox2の数値の大...
-
14
大、小2つの数がある。大きい数...
-
15
因数定理の因数分解 x三乗+3x二...
-
16
「リテラル値」
-
17
xの2n乗 を積分するとどうなり...
-
18
ユーザー名「hoge」について
-
19
FX:指定した時間の高値・安値を...
-
20
境界条件のある偏微分方程式の...
おすすめ情報
公式facebook
公式twitter