

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(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- その他(パソコン・スマホ・電化製品) pthonのframeに演算結果(数値)を表示したい 1 2023/06/05 22:08
- Visual Basic(VBA) Excel VBA ユーザーフォーム内のラベルにテキストボックスの小計を出す方法 5 2022/08/17 14:27
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
このQ&Aを見た人はこんなQ&Aも見ています
-
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
-
4
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
5
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
8
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
9
二つのテキストボックスの内容が同時に同じ内容に
Word(ワード)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
12
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
13
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
14
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
15
ExcelVBA EnableプロパティがFalseの時に文字の色を変えたくない
Visual Basic(VBA)
-
16
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
17
Access2010 「演算子がありません」エラー
その他(データベース)
-
18
UserForm1.Showでエラーになります。
工学
-
19
ユーザーフォームでTextBox1にカーソルを移動したい
Excel(エクセル)
-
20
VBA フォームのテキストボックスにセルの値を表示させたいが改行していたら改行もあわせて表示させたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
恒等的に正しいとはどういう意...
-
高2数学 軌跡
-
1/x+1/y+1/z=1/2
-
c言語で入力された5つの数字か...
-
数Ⅰ 2X-3>a+8Xについて次の問い...
-
二次関数
-
数学の質問です。 3で割ると2余...
-
円の方程式
-
因数定理の因数分解 x三乗+3x二...
-
数Bの数列の問題です。 正の奇...
-
e^ixを1次の項までテイラー展開...
-
この問題が分かりません;
-
連想配列の初期化
-
ライニプッツの公式に関してで...
-
二次関数の応用
-
「リテラル値」
-
この問題について…答えが出ない...
-
TextBox1とTextBox2の数値の大...
-
ベクトルの問題です(何度もご...
-
この問題、(2)だけでいいので教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
恒等的に正しいとはどういう意...
-
SPIの問題
-
数学の質問です。 3で割ると2余...
-
円の方程式
-
数Bの数列の問題です。 正の奇...
-
「Access」のフォームで、同じ...
-
3で割ると2余り,5で割ると3余...
-
X^nをX^2-X-2で割ったときの...
-
w=1/z−iのときz平面上の図形は...
-
c言語で入力された5つの数字か...
-
【数3】微分方の応用の問題で増...
-
平衡定数の求め方について、ΔG=...
-
4元連立方程式の解き方を教えて...
-
高2数学 軌跡
-
二次関数
-
「リテラル値」
-
連想配列の初期化
-
SPIの問題でわからないところが...
-
因数定理の因数分解 x三乗+3x二...
-
階差数列について質問したいの...
おすすめ情報