

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で質問しましょう!
似たような質問が見つかりました
- Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい
- VBA Userformで一部別シートに転記がしたいのですが
- javascript作成してます。ラジオボタンで判定するコードを書いてます。
- VBA 重複チェック後に値をワークシートに転記する方法を教えてください。
- 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付
- マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法
- 【VBA】特定のワードが入っている行全体を塗りつぶしたい
- pthonのframeに演算結果(数値)を表示したい
- Excel VBA ユーザーフォーム内のラベルにテキストボックスの小計を出す方法
- 列と行の名前(重複あり)が交差するセルに、データを入力したい
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
テキストボックスの値同士を比較したい
JavaScript
-
数字以外の入力をエラーにするには?
Visual Basic(VBA)
-
-
4
ラベルを表示したり非表示にしたりしたい
Visual Basic(VBA)
-
5
ユーザーフォームに今の時間を表示
Access(アクセス)
-
6
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
7
文字列の比較
Visual Basic(VBA)
-
8
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
9
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
10
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
11
VBAのテキストボックスに文字列を貼り付ける方法
Access(アクセス)
-
12
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
13
access テキストボックスの値取得
Access(アクセス)
-
14
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
15
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
16
リストボックスをクリックすると、他フォームに値代入
Excel(エクセル)
-
17
VBA コンボボックスで選んだ値を取得するには
その他(Microsoft Office)
-
18
ユーザーフォーム上にある「テキストボックス」に小数が入力できない
Excel(エクセル)
-
19
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
20
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
3で割ると2余り,5で割ると3余...
-
恒等的に正しいとはどういう意...
-
高2数学 軌跡
-
「Access」のフォームで、同じ...
-
xの2n乗 を積分するとどうなり...
-
次の関数の組が線形独立である...
-
二次関数の決定についての質問...
-
平衡定数の求め方について、ΔG=...
-
【一次関数】一直線に並ぶ3点...
-
1/x+1/y+1/z=1/2
-
つるかめ算
-
x3+ax+6がx-1で割り切れると...
-
連想配列の初期化
-
数学の質問です。 3で割ると2余...
-
SPIの問題
-
高校数1についての質問です。 ...
-
至急!数学の基本問題、助けて...
-
A,Bをn次正方行列とする場合、...
-
写真の数学の質問です。 https:...
-
数II です。次の等式を満たす実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
恒等的に正しいとはどういう意...
-
平衡定数の求め方について、ΔG=...
-
3で割ると2余り,5で割ると3余...
-
次の関数の組が線形独立である...
-
以下のような鶴亀算は成り立ち...
-
SPIの問題
-
数学の質問です。 3で割ると2余...
-
4元連立方程式の解き方を教えて...
-
数Bの数列の問題です。 正の奇...
-
「Access」のフォームで、同じ...
-
エクセル 2/3乗
-
w=1/z−iのときz平面上の図形は...
-
Excel VBAで1行に2つのコードを...
-
連想配列の初期化
-
Access VBA クリップボードの内...
-
正四面体の頂点を求める問題
-
整数の問題です。(10^n)+1は素...
-
数学Aで、理解に苦しんでいます...
-
TextBox1とTextBox2の数値の大...
-
因数定理の因数分解 x三乗+3x二...
おすすめ情報