アクセスVBAテキストボックスやコンボボックスを全部クリアするには

アクセス担当のまみです。

フォーム上のテキストボックスやコンボボックスに入力した値を消してくれるクリアボタンってとっても便利ですね。

ボタン一つで全部消してくれる!

そんな処理を可能にしてくれるコード自体はとっても簡単なんだけど、テキストボックスやコンボボックスの数だけ必要なんです。

数が多くなってくるとそれだけでとっても長いコードになっちゃいます・・・

私も全部まとめてクリアする方法なんて知らなかった頃、一つずつ書く方法しかないのかなぁ。何かいい方法ってないのかなって思ってました。

 

まとめてクリアする方法を知ってからはとっても重宝しています。

今回は、全部まとめてクリアする方法をお伝えしますね。

 

フォームのデータをまとめてクリアする方法

 

実際に使用したいファイルがある場合にはそのファイルでやってみてくださいね。

ここでは、説明のために「営業日報」ファイルを使用します。

同じファイルを使用したいなって場合は下記の記事から順番に作成してみてくださいね!

 

【アクセス】コンボボックスにテーブルの値を表示させよう

2018年10月24日

 

ファイルの準備ができたら、「F_営業日報」フォームをデザインビューで開きましょう。

 

では、「F_営業日報」フォームにクリアボタンを配置しましょう。

名前 btnクリア
標題 クリア

 

 

①「btnクリア」を選択した状態でプロパティーシートの②「イベント」タブを選択して、クリック時に「イベントプロシージャ」を選んでコードの画面を表示します。

 

「Private Sub btnクリア_Click()」と「End Sub」の間に下記のコードを追加しましょう。

    Dim clear As Control
    On Error Resume Next
    For Each clear In Me.Controls
        With clear
            If .ControlType = acTextBox Or acComboBox Then
                .Value = ""
            End If
        End With
    Next clear

 

Dim 変数 As データ型

Dim clear As Control・・・変数clearを使わせてくださいねって宣言しています。

On Error Resume Next・・・オートナンバー型があったりとかでエラーがあっても無視してねって意味です。

.ControlType = acTextBox Or acComboBox・・・ここでテキストボックスとコンボボックスを指定しています。

[quads id=2]
(はてな君)
じゃぁテキストボックスしかない時はacTextBoxだけ書けばいいってこと?

 

(あいちゃん)
そうそうそういうこと!何を配置しているか、何をクリアしたいかで指定してあげるんです!そうすることで数に関係なくテキストボックスやコンボボックスを探してくれてクリアしてくれます!

 

では「F_営業日報」をフォームビューに切り替えて動作確認してみましょう。

 

何かデータを入力して、「クリア」ボタンを左クリック!

 

 

(はてな君)
クリアされた~!これって他のところにも使えるんでしょう?

 

(あいちゃん)
テキストボックスやコンボボックスの名前に関係なくどこでも使えますよ!

 

(はてな君)
登録ボタンのところをこのコードに書き換えたい!

 

(あいちゃん)
はてな君さすがですね!これから説明しようとしていたところだったんです!

 

では、登録ボタンの現在のコードを見てみましょう。

 

赤枠で囲ってある部分が、クリア処理の部分です。

一つずつクリア処理書いていくにはそろそろ限界?な量になってきてますね。

この部分を今回のコードに書き換えちゃいましょう。

 

動作確認もしっかりしておいてくださいね!

 

まとめ

 

テキストボックスやコンボボックスの名前に関係なく、まとめてクリアできるってとっても便利ですよ。

ぜひ実践で使ってみてくださいね!

 

スポンサーリンク