コントロールを無効に設定する(Enabledプロパティ)
ユーザーフォームに設置したコントロールに対して Enabled プロパティを設定することでコントロールを無効の状態にすることができます。コントロールが無効となるとマウスやキーボードを使ってコントロールにアクセスすることができなくなります。ここでは Excel のユーザーフォームで Enabled プロパティを使ってコントロールを無効にする方法について解説します。
(Last modified: )
コントロールを無効に設定する
コントロールを無効に設定するには Enabled
プロパティを使用します。例えばユーザーフォームに設置したコマンドボタンの Enabled
プロパティの値はデフォルトで「True」となっておりコマンドボタンは有効です。
ユーザーフォームの実行をクリックしてユーザーフォームを実際に表示してみるとコマンドボタンにフォーカスを移すことができるのが確認できます。
コントロールを無効にするには、 Enabled
プロパティの項目をクリックしてください。そして表示されたドロップダウンメニューをクリックし、「False」をクリックしてください。
コマンドボタンが無効に設定されました。
コントロールが有効の場合はフォーカスを受け取ることができ、ユーザーが生成したイベントに応答できす。コントロールが無効の場合はマウスやキーボードを使ってコントロールにアクセスできません。またコントロール上に表示されていた文字列の色が淡色に変わります。
例えばコマンドボタンであればボタンをクリックすることができなくなります。ユーザーフォームの実行をクリックしてユーザーフォームを実際に表示してみるとコマンドボタンにフォーカスを移すことができずクリックもできないことが確認できます。
このように Enabled
プロパティの値を変更することで、コントロールを無効に設定することができます。
VBAのプログラムの中でEnabledプロパティを設定する
プロパティウィンドウを使って Enabled
プロパティの値を変更する代わりに、 VBA のコードを記述して Enabled
プロパティの値を変更することもできます。
プログラムの中で Enabled
プロパティを設定する場合は次の書式を使用します。
オブジェクト.Enabled [= Boolean ]
対象のオブジェクトの Enabled
プロパティに対して「True」または「False」を代入します。
True を設定した場合はコントロールは有効となります。また「False」を設定した場合はコントロールは無効となります。
簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャを作成し、その中で Enabled
プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。
※ Initialize
イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。
ユーザーフォームのコントロールが何もないところをダブルクリックしてください。
ユーザーフォームの規定のイベントである Click
イベントに対するイベントプロシージャが表示されます。
今回はユーザーフォームの Initialize
イベントに対するイベントプロシージャを使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。
Private Sub UserForm_Initialize() TextBox1.Enabled = False CommandButton1.Enabled = False End Sub
これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されました。追加されているテキストボックスとコマンドボタンが無効となっていることが確認できます。
このように VBA のプログラムの中で Enabled
プロパティの値を変更することができました。
-- --
Excel のユーザーフォームで Enabled プロパティを使ってコントロールを無効にする方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。