Excel VBA コントロールの有効・無効を切り替える

スポンサーリンク
スポンサーリンク

ユーザーフォームに設置されたコントロールの有効・無効を切り替える方法

コントロールを一時的に使用できなくするには
対象コントロールオブジェクトの
Enabled【エナブル】プロパティを使用します。
Enabled【エナブル】は「使用可能」にするという意味があります。

また、一時的にコントロールを非表示にするには
対象コントロールオブジェクトの
Visible【ビジブル】プロパティを使用します。
Visible【ビジブル】は「目に見える」という意味があります。

Enabled【エナブル】プロパティ

ユーザーフォームに設定された
コントロールを一時的に使用できなくするには
対象コントロールオブジェクトの
Enabled【エナブル】プロパティを使用します。

Enabled【エナブル】プロパティの書式

オブジェクト.Enable = 設定値


設定値の説明

  • オブジェクト(必須)
    一時的に有効・無効を設定する
    コントロールオブジェクト名を指定します。
  • 設定値
    設定値内容
    Trueコントロールは有効です。(既定値)
    Falseコントロールは無効です。

Visible【ビジブル】プロパティ

ユーザーフォームに設定された
コントロールを一時的に非表示にするには
対象コントロールオブジェクトの
Visible【ビジブル】プロパティを使用します。

Visible【ビジブル】プロパティの書式

オブジェクト.Visible = 設定値


設定値の説明

  • オブジェクト(必須)
    一時的に非表示または表示を設定する
    コントロールオブジェクト名を指定します。
  • 設定値
    設定値内容
    Trueコントロールを表示します。(既定値)
    Falseコントロールを非表示にします。

オプション選択のチェックボックスにチェックをした場合に
オブションを選択できるコード例

Private Sub UserForm_Initialize()
Frame1.Enabled = False
CheckBox2.Enabled = False
CheckBox3.Enabled = False
End Sub

コードの解説

1行目
【Private Sub UserForm_Initialize()】

ユーザーフォームが表示される直前に発生する
UserFormコントロールオブジェクトの
Initialize【イニシャライズ】イベントプロシージャー
にコードを記述します。


2~4行目
【Frame1.Enabled = False
CheckBox2.Enabled = False
CheckBox3.Enabled = False】

各コントロールオブジェクトの
Enabled【エナブル】プロパティにFalseを設定して
コントロールを無効の状態にします。



Private Sub CheckBox1_Click()
If CheckBox1 = True Then
Frame1.Enabled = True
CheckBox2.Enabled = True
CheckBox3.Enabled = True
Else
Frame1.Enabled = False
CheckBox2.Enabled = False
CheckBox3.Enabled = False
End If
End Sub

コードの解説

1行目
【Private Sub CheckBox1_Click()】

最初に表示されるオブション選択のチェックボックスを表す
CheckBox1コントロールオブジェクトの
チェックボックスをクリックしたときに発生する
Click【クリック】イベントプロシージャー内に
コードを記述します。


2行目
【If CheckBox1 = True Then】

Ifステートメントで条件分岐です。
CheckBox1がTrueだったとき
つまり、CheckBox1のチェックボックスが
チェックされているときを定義します。


3~5行目
【Frame1.Enabled = True
CheckBox2.Enabled = True
CheckBox3.Enabled = True】

2行目の条件が成立したとき
つまりCheckBox1がチェックされていたときの処理です。
各コントロールオブジェクトの
Enabled【エナブル】プロパティに「True」を設定して
コントロールを有効な状態にします。


6~9行目
【Else
Frame1.Enabled = False
CheckBox2.Enabled = False
CheckBox3.Enabled = False】

Else【エルズ】キーワードを使用して以下に
2行目の条件が不成立だった場合
つまり、CheckBox1にチェックのチェックがはずれている場合
の処理を記述します。
各コントロールオブジェクトの
Enabled【エナブル】プロパティに「False」を設定して
コントロールを無効にします。


※コントロールを表示・非表示にする場合は
Enabled【エナブル】プロパティの部分を
Visible【ビジブル】プロパティに置き換えます。


Not【ノット】演算子

有効・無効や表示・非表示の切り替えに
TrueやFalseを使用する代わりに
Not【ノット】演算子を使用する方法もあります。
Not【ノット】演算子は論理否定です。
右辺の条件式が「True]の場合には「False」
「False」の場合には「True」を返します。

Not【ノット】演算子を使用したボタンの表示・非表示切り替え例

Private Sub UserForm_Initialize()
CommandButton2.Visible = Not CommandButton2.Visible
End Sub

コードの解説

1行目
【Private Sub UserForm_Initialize()】
ユーザーフォームが表示される直前に発生する
UserFormコントロールオブジェクトの
Initialize【イニシャライズ】イベントプロシージャー
にコードを記述します。


2行目
【CommandButton2.Visible = Not CommandButton2.Visible】
コマンドボタン2のVisible【ビジブル】プロパティを
Not【ノット】演算子(論理否定)で
初期値のTrue(表示)をFalse(非表示)に切り替えて
フォームが表示されたときは
コマンドボタン2が非表示になるように設定します。


Private Sub CommandButton1_Click()
CommandButton2.Visible = Not CommandButton2.Visible
CommandButton1.Visible = Not CommandButton1.Visible
End Sub

コードの解説

1行目
【Private Sub CommandButton1_Click()】

コマンドボタン1がクリックされたときに発生する
CommandButton【コマンドボタン】コントロールオブジェクトの
Click【クリック】イベントプロシージャーにコードを記述します。


2行目
【CommandButton2.Visible = Not CommandButton2.Visible】

コマンドボタン2のVisible【ビジブル】プロパティを
Not【ノット】演算子(論理否定)を使用して
False(非表示)からTrue(表示)に切り替えます。


3行目
【CommandButton1.Visible = Not CommandButton1.Visible】

コマンドボタン1のVisible【ビジブル】プロパティを
Not【ノット】演算子(論理否定)を使用して
True(表示)からFalse(非表示)に切り替えます。


Private Sub CommandButton2_Click()
CommandButton1.Visible = Not CommandButton1.Visible
CommandButton2.Visible = Not CommandButton2.Visible
End Sub

コードの解説

1行目
【Private Sub CommandButton2_Click()】

コマンドボタン2がクリックされたときに発生する
CommandButton【コマンドボタン】コントロールオブジェクトの
Click【クリック】イベントプロシージャーにコードを記述します。


2行目
【CommandButton1.Visible = Not CommandButton1.Visible】

コマンドボタン1のVisible【ビジブル】プロパティを
Not【ノット】演算子(論理否定)を使用して
False(非表示)からTrue(表示)に切り替えます。


3行目
【CommandButton2.Visible = Not CommandButton2.Visible】

コマンドボタン2のVisible【ビジブル】プロパティを
Not【ノット】演算子(論理否定)を使用して
True(表示)からFalse(非表示)に切り替えます。


以上で
コントロールの有効・無効を切り替える方法についての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク