コントロールを無効に設定する(Enabledプロパティ)

ユーザーフォームに設置したコントロールに対して Enabled プロパティを設定することでコントロールを無効の状態にすることができます。コントロールが無効となるとマウスやキーボードを使ってコントロールにアクセスすることができなくなります。ここでは Excel のユーザーフォームで Enabled プロパティを使ってコントロールを無効にする方法について解説します。

(Last modified: )

コントロールを無効に設定する

コントロールを無効に設定するには Enabled プロパティを使用します。例えばユーザーフォームに設置したコマンドボタンの Enabled プロパティの値はデフォルトで「True」となっておりコマンドボタンは有効です。

コントロールを無効に設定する(1)

ユーザーフォームの実行をクリックしてユーザーフォームを実際に表示してみるとコマンドボタンにフォーカスを移すことができるのが確認できます。

コントロールを無効に設定する(2)

コントロールを無効に設定する(3)

コントロールを無効にするには、 Enabled プロパティの項目をクリックしてください。そして表示されたドロップダウンメニューをクリックし、「False」をクリックしてください。

コントロールを無効に設定する(4)

コマンドボタンが無効に設定されました。

コントロールを無効に設定する(5)

コントロールが有効の場合はフォーカスを受け取ることができ、ユーザーが生成したイベントに応答できす。コントロールが無効の場合はマウスやキーボードを使ってコントロールにアクセスできません。またコントロール上に表示されていた文字列の色が淡色に変わります。

例えばコマンドボタンであればボタンをクリックすることができなくなります。ユーザーフォームの実行をクリックしてユーザーフォームを実際に表示してみるとコマンドボタンにフォーカスを移すことができずクリックもできないことが確認できます。

コントロールを無効に設定する(6)

このように Enabled プロパティの値を変更することで、コントロールを無効に設定することができます。

VBAのプログラムの中でEnabledプロパティを設定する

プロパティウィンドウを使って Enabled プロパティの値を変更する代わりに、 VBA のコードを記述して Enabled プロパティの値を変更することもできます。

プログラムの中で Enabled プロパティを設定する場合は次の書式を使用します。

オブジェクト.Enabled [= Boolean ]

対象のオブジェクトの Enabled プロパティに対して「True」または「False」を代入します。

True を設定した場合はコントロールは有効となります。また「False」を設定した場合はコントロールは無効となります。

サンプルコード

簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャを作成し、その中で Enabled プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。

Initialize イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。

ユーザーフォームのコントロールが何もないところをダブルクリックしてください。

VBAのプログラムの中でEnabledプロパティを設定する(1)

ユーザーフォームの規定のイベントである Click イベントに対するイベントプロシージャが表示されます。

VBAのプログラムの中でEnabledプロパティを設定する(2)

今回はユーザーフォームの Initialize イベントに対するイベントプロシージャを使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。

Private Sub UserForm_Initialize()
    TextBox1.Enabled = False
    CommandButton1.Enabled = False
End Sub

VBAのプログラムの中でEnabledプロパティを設定する(3)

これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。

VBAのプログラムの中でEnabledプロパティを設定する(4)

ユーザーフォームが表示されました。追加されているテキストボックスとコマンドボタンが無効となっていることが確認できます。

VBAのプログラムの中でEnabledプロパティを設定する(5)

このように VBA のプログラムの中で Enabled プロパティの値を変更することができました。

-- --

Excel のユーザーフォームで Enabled プロパティを使ってコントロールを無効にする方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。