教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでフォーム内のチェックボックスの状態に応じてコントロールの表示/非表示を切り替える方法

構文

構文は以下の通りです。

If チェックボックス名.Value = True Then
    コントロール名.Visible = True
Else
    コントロール名.Visible = False
End If

解説

チェックボックス名.Valueは、チェックボックスがチェックされているかどうかを判断します。Trueならチェックされていて、Falseならチェックされていません。コントロール名.Visibleは、指定されたコントロールの表示/非表示を制御します。Trueにすると表示され、Falseにすると非表示になります。If~Then~Else文は、条件によって異なる処理を行います。チェックボックスがチェックされている場合に表示、そうでない場合は非表示にするために使います。

プログラミング例

具体的なプログラミング例を紹介します。

(例1)チェックボックスでラベルを表示/非表示にする

Private Sub チェックボックス1_Click()
    If チェックボックス1.Value = True Then
        ラベル1.Visible = True
    Else
        ラベル1.Visible = False
    End If
End Sub

上記のプログラムでは、チェックボックス1がクリックされたときに、ラベル1の表示/非表示を切り替えます。チェックボックス1がチェックされていればラベル1が表示され、外されていれば非表示になります。

(例2)複数のコントロールを一度に操作する

Private Sub チェックボックス1_Click()
    If チェックボックス1.Value = True Then
        ラベル1.Visible = True
        テキストボックス1.Visible = True
    Else
        ラベル1.Visible = False
        テキストボックス1.Visible = False
    End If
End Sub

上記のプログラムでは、チェックボックス1に基づいて、ラベル1とテキストボックス1の表示/非表示を一度に制御しています。これにより、複数のコントロールを同時に管理することができます。

まとめ

フォーム内のチェックボックスの状態に応じてコントロールを表示/非表示にするには、チェックボックス名.Valueとコントロール名.Visibleを使います。If~Then~Else文で条件分岐を行い、チェックされているかどうかに応じて処理を変更します。複数のコントロールも同じ方法で同時に表示/非表示を制御できます。