● 概要 ●
テキストボックスは、ユーザーの入力を受け付けるために使用します。
テキストボックスに入力された値は、Textプロパティ、Valueプロパティで取得できます。
また、プロパティを明示しなくても、テキストボックスに入力された値を取得できます。
● サンプル ●
Private Sub cmd設定取得_Click()
Dim myStr As String
'フォーカスを移動
テキスト1.SetFocus
'値を設定
テキスト1 = "テスト"
'Valueプロパティで値を取得
myStr = "テキスト1.Value: " & テキスト1.Value & vbCr
'Textプロパティで値を取得
myStr = myStr & "テキスト1.Text: " & テキスト1.Text & vbCr
'プロパティを明示せずに値を取得
myStr = myStr & "テキスト1: " & テキスト1
MsgBox myStr
End Sub
● 操作例1 ●
上記のコード中で、テキストボックスにフォーカスを与えているのは、Textプロパティはフォーカスがないと取得や設定ができないからです。
テキストボックスにフォーカスがある間は、Textプロパティには現在のテキストボックスの入力値が設定され、Valueプロパティには保存されているテキストボックスのデータが設定されています。
次のコードは、テキストボックスのChangeイベントプロシージャです。Changeイベントは、テキストボックスの内容が変化するときに発生します。
テキストボックスにデータを入力すると、Textプロパティは変化しますが、Valueプロパティには変化がありません。
● サンプル1 ●
Private Sub テキスト1_Change()
Dim myStr As String
'Valueプロパティで値を取得
myStr = "テキスト1.Value: " & テキスト1.Value & vbCr
'Textプロパティで値を取得
myStr = myStr & "テキスト1.Text: " & テキスト1.Text & vbCr
'プロパティを明示せずに値を取得
myStr = myStr & "テキスト1: " & テキスト1
MsgBox myStr
End Sub
● 操作例2 ●
テキストボックスに入力されたデータは、BeforeUpdateイベントでチェックできます。
チェックの結果、イベントプロシージャの引数をTrueに設定することによって、更新を取り消すことが可能です。
次のコードは、テキストボックスに数値以外が入力された場合、更新を取り消すものです。
● サンプル2 ●
Private Sub テキスト2_BeforeUpdate(Cancel As Integer)
If IsNumeric(テキスト2.Text) = False Then
MsgBox "数値を入力してください"
Cancel = True
End If
End Sub