このページではチェックボックスの Value プロパティについて解説します。
チェックボックスは “オン/オフ” や “有/無” など、2択から1つを選択するためのよく見かけるコントロールです。通常はコントロールを設置して Caption プロパティや Value プロパティの初期値を設定するだけなので、特に説明は不要でしょう。
ただ、チェックボックスはチェック状態でも未チェック状態でもない、”NULL状態”を表現することが可能ですので、このページで解説したいと思います。
説明済みプロパティ
コントロールオブジェクトが異なるだけで前のページで説明した内容と同じプロパティについては説明を割愛させていただきます。以下のリンク先をご覧になってください。
※説明の中に出てくるコントロールオブジェクトは適宜読み換えてください。
チェック状態の取得および設定(Value プロパティ)
チェック状態の取得および設定を行うには Value プロパティを使用します。True を設定することでチェック状態、False を設定することで未チェック状態にすることができます。
NULL状態にするにはプロパティウィンドウから設定する場合とコードから設定する場合で設定方法が異なります。プロパティウィンドウから設定する場合は Value プロパティをクリアします。コードから設定するには Value プロパティに NULL 値を設定します。
- チェック状態
- 未チェック状態
- NULL状態
プロパティウィンドウでの設定
True/False を設定します。値をクリアするとNULL状態になります。
コードの記述例
'チェック状態に設定 CheckBox1.Value = True '未チェック状態に設定 CheckBox1.Value = False 'NULL状態に設定 CheckBox1.Value = NULL
以下のコードは、コマンドボタンのクリックイベントでチェックボックスのチェック状態を表示する例です。NULL状態(NULL 値)の判定には IsNull関数 を使用します。
Private Sub CommandButton1_Click() With CheckBox1 If IsNull(.Value) Then MsgBox "NULL状態(NULL値)" ElseIf .Value Then MsgBox "チェック状態" Else MsgBox "未チェック状態" End If End With End Sub
NULL状態の使用用途
上記では Value プロパティに NULL 値を設定することで、NULL状態にできることを説明しましたが、どういう場合にこのNULL状態を使うのかを簡単な例を挙げて説明します。
健康診断のアンケートで喫煙するかどうかを問う
喫煙するか否かを問うためにチェックボックスを設置した場合を考えます。初期状態で Value プロパティは False に設定されているものとします。
このようにしてしまうと、チェックされていない場合にそれが単に非喫煙者なのか、喫煙者がただチェックをし忘れたのかが判別できません。特にアンケートなどチェック項目が多くなると、チェック項目を見落としてしまう可能性は高くなります。
このような場合に初期状態として”NULL状態(NULL値)”を設定しておきます。
そして、アンケートを終了するときに NULL 値かどうかチェックすることで、ユーザーのチェック漏れを防ぐことができます。
Nullチェックの例
If IsNull(CheckBox1.Value) Then MsgBox "『喫煙』項目がチェックされていません。", vbExclamation End If