特定のテキストボックスの値をクリアするには、そのテキストボックスのValueプロパティにNullを代入します。一方、特定のテキストボックスではなく、とにかくフォーム内のすべてのテキストボックスをクリアしたいといった場合には、「Controls」コレクション内を探索して、"コントロールの種類(ControlTypeプロパティ)がテキストボックスコントロールならNullを代入する"というプログラムで実現することができます。
この方法は、特定のコントロール名を指定していないために、デザイン上でテキストボックスが増えたり減ったりしても、あるいは名前が変わったりしても、プログラムを書き換える必要がないというメリットがあります。
Private Sub cmdClear_Click()
'[クリア]ボタンクリック時
Dim ctl As Control
On Error Resume Next
'このフォーム内のすべてのコントロールを検索
For Each ctl In Me.Controls
With ctl
If .ControlType = acTextBox Then
'コントロールの種類がテキストボックスなら値をNull(空)に設定
.Value = Null
End If
End With
Next ctl
End Sub
実行前 |
実行後 |
 |
 |
|