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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
テキストボックスの値同士を比較したい
JavaScript
-
数字以外の入力をエラーにするには?
Visual Basic(VBA)
-
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
-
4
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
5
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
6
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
7
Access VBA DB(先頭の0値を消す方法)
PowerPoint(パワーポイント)
-
8
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
9
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
10
他テーブルで一致する列から名称を取得したい(SQL文)
SQL Server
-
11
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
12
DoEventsがやはり分からない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
恒等的に正しいとはどういう意...
-
SPIの問題
-
高2数学 軌跡
-
計算問題
-
数Bの数列の問題です。 正の奇...
-
Excel VBAで1行に2つのコードを...
-
1/x+1/y+1/z=1/2
-
楕円と円の共有点について
-
単位法線ベクトルの求め方
-
アークタンジェントで…
-
数学の質問です。 3で割ると2余...
-
整数の問題です。(10^n)+1は素...
-
【 数1 二次関数 グラフの平行...
-
ライニプッツの公式に関してで...
-
整数問題9 激難だそうです
-
Access VBA クリップボードの内...
-
エクセル 2/3乗
-
漸近線をつかうもんだい
-
剰余の定理、因数定理
-
平衡定数の求め方について、ΔG=...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SPIの問題
-
恒等的に正しいとはどういう意...
-
数学の質問です。 3で割ると2余...
-
高2数学 軌跡
-
3で割ると2余り,5で割ると3余...
-
w=1/z−iのときz平面上の図形は...
-
「Access」のフォームで、同じ...
-
計算問題
-
7で割ると2余り、11で割ると3余...
-
平衡定数の求め方について、ΔG=...
-
至急!数学の基本問題、助けて...
-
高校数1についての質問です。 ...
-
エクセル 2/3乗
-
TextBox1とTextBox2の数値の大...
-
4元連立方程式の解き方を教えて...
-
次の関数の組が線形独立である...
-
e^ixを1次の項までテイラー展開...
-
整数の問題です。(10^n)+1は素...
-
高校数学:整数
-
連想配列の初期化
おすすめ情報