
VBAのユーザーフォームのテキストボックスで
TextBox5.Value
TextBox5.text
の違いについて教えてください。
てっきり数値かストリングかの違いだと思っていたのですが
Private Sub TextBox5_Change()
ee = TextBox5.Value
dd = TextBox5.text
End Sub
というコードでテキストボックスにいろいろな値を入れて調べてみたのですが
valueもtextもストリングで値が格納されており、
両方とも数値、文字列をどちらとも扱えることが分かりました。
検索して調べてみたのですが
http://www.tsware.jp/study/vol16/vbabegin_32.htm
前者はそのコントロールからフォーカスが離れたときなどに確定した値です。
一方、後者は現在編集中のデータ内容(画面に表示されている内容)です。
編集中の場合にValueプロパティを取得しても、それは前回最後に確定したデータであって、
現在画面に表示されているものではありません。
このページによれば、
文字入力確定後の値がtextに格納されており
編集中の値がvalueに格納されているそうです。
それで、例えば「aaaa」と入力されている途中にカーソルを入れて
「aabaa」としてみました。
しかし、両方とも同じ値が代入されています。
http://officetanaka.net/excel/vba/tips/tips143.htm
このページにはボックスが空のときの扱いが異なるそうなのですが
「aaaa」をクリアしてみると
両方とも""という値が代入されています。
全く同じ挙動をしているように思えるのですが
どうやって使い分ければ良いのでしょうか?
どういうコードなら違いが見られますでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
しばらく調べてみました。
私も同様の疑問でした。>全く同じ挙動をしているように思えるのですが
>どうやって使い分ければ良いのでしょうか?
Office Tanaka では、Value では、Null 値が現れるようなことが書かれていますが、TextBox において、両者は同じです。String型ですから、Null値が現れるはずがありません。
質問のリンク先の以下の内容は、あくまでも、Access の話です。
「テキストボックスへの入力内容を扱う場合には、「Value」プロパティと「Text」プロパティの違いに注意しなければなりません。前者は・・・フォーカスが離れたときなどに確定した値です。一方、後者は・・・現在編集中のデータ内容・・・現在画面に表示されているものではありません。 」
Excelでは、私には、その違いは見出されません。もしかしたら、PasswordChr に違いがあるかと思いましたが、それもありません。単に、VB6の名残りで使うつもりなら、.Textプロパティなんだろうか、というところだけです。同じだと解釈してよいのではないでしょうか。
あっ、それは別として、些細なことですが、その格納した変数のアドレスが違いますね。だから、何ということもありませんが。
Dim a, b
a = VarPtr(TextBox1.Value)
b = VarPtr(TextBox1.Text)
MsgBox "Value: " & a & vbCrLf & "Text: " & b
関数の説明
https://support.microsoft.com/ja-jp/kb/199824
古い内容ですが、ここの質疑回答とほぼおなじです。
http://www.xtremevbtalk.com/excel/108079-textbox …
なお、セルの場合は、Textプロパティは、値の取得のみですから、入力ができません。かなり明確に違いが出てきます。

No.1
- 回答日時:
Textは書式設定に従った見た目の表現で返します。
例えばA1に0.7と書いて書式を%表示にした場合
A=Cells(1,1).Text Aの中身は70%
A=Cells(1,1).Value Aの中身は0.7
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Excel(エクセル) VBA 同日で2回目(午後)の体温を登録するときのコード 3 2022/08/28 20:29
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
あなたの人生で一番ピンチに陥った瞬間は?
これまでの人生で今振り返ると「あの時、1番ピンチだったなぁ...」という瞬間はありますか?
-
思い出すきっかけは 音楽?におい?景色?
記憶をふと思い出すきっかけは 音楽、におい、景色 どれですか?
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
-
4
Access サブフォームでの選択行の取得
その他(データベース)
-
5
UserForm1.Showでエラーになります。
工学
-
6
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
7
access テキストボックスの値取得
Access(アクセス)
-
8
どこにもフォーカスを当てたくない
Access(アクセス)
-
9
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
10
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
11
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
12
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
13
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
14
TextBoxから数字が文字として入力される?
Visual Basic(VBA)
-
15
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
16
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
17
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
18
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
19
Excel-VBA>コントロールをグレイアウトするには?
Excel(エクセル)
-
20
Integer変数をカラにしたいのですが
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VB.NETでアクティブなformを知...
-
ユーザーフォームのテキストボ...
-
VB初心者。小数点以下の表示で...
-
[VB.net] DataGridViewのコンボ...
-
Excel VBA 複数選択したリスト...
-
MATLABのGUIについて教えていた...
-
C#の質問です
-
テキストボックスの設定。
-
C言語でのレジストリ書き換え
-
[VBA]選択範囲の下から上に処理...
-
textboxとLabelを動的に変更する
-
マクロ 特定のセル値のみクリ...
-
ExcelでGaussian fittingをした...
-
VisualStudio2005で中断した際...
-
Powershellのparamについて
-
vb6のVSFlexGridで選択行、列の...
-
繰り返し
-
VBAでWEB上の入力項目に値をい...
-
不定値の出力について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
Excel VBA 複数選択したリスト...
-
VB.NETでコンボボックスの1行目...
-
値を返さないコード パス
-
Excel VBAのリストボックスの値...
-
マクロ 特定のセル値のみクリ...
-
C#の質問です
-
VB初心者。小数点以下の表示で...
-
Powershellのparamについて
-
VBA ドロップダウンリストを残...
-
textboxとLabelを動的に変更する
-
vb6のVSFlexGridで選択行、列の...
-
PL/SQLでのTO_DATEの時間取得に...
-
ASPの変数の値をJAVA Script内...
-
VB.netでRGB関数を使うには
-
VBA(自然数)
-
変数名の取得
-
ISDBNULLをスルーしてDBNULLが...
-
【C++/CLI.NET】コンボボックス...
-
VB.NETのスクロールバーコント...
おすすめ情報