#309 | すべてのテキストボックスを空欄にする方法 | フォーム、VBA | |||||
特定のテキストボックスの値をクリアするには、そのテキストボックスの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
※テーブルとの連結フィールドによっては値をNullに設定できないものもあるので(オートナンバー型など)、On Error Resume Nextによってそのようなエラーを無視するようにしています。 ※組み込み定数"acTextBox"は、コントロールの種類としてテキストボックスコントロールを表すものです。これを書き換えることによって、他の特定のコントロールの種類も、値をまとめて変更することができます。 |
|||||||
|
Copyright © T'sWare All rights reserved |