すぐマク YNxv9a74 Home | Search | Contents | Gallery | Introduction | Service | Support | What's New!
コマンドボタンの選択可否を切り替える(文字を淡色表示する) には?
Question 35.1 コマンドボタン・コントロール Previous Next
ユーザーフォームに数個のオプションボタンと、コマンドボタンを2個(実行と中止)、のっけてあります。
オプションボタンを一つ選択しないと、実行ボタンを押せないように薄く表示させたいのですが、どのようにすればよいのでしょうか?
お願いいたします。
Answer  Excel 97以上 Copyright (C) 2000.11.29 Yoshioh Nagai
右図のような状態にしたいのですね。
ユーザーフォーム
コントロール(この場合はコマンドボタン)がフォーカスを取得できるかどうか、およびユーザーの操作で発生したイベントに応答するかどうかは、Enabledプロパティの値を設定して切り替えます。
  Trueにすれば、 マウスやキーボードから操作できます。
  Falseにすれば、マウスやキーボードから操作できなくなります。

どちらの場合も、マクロコードで操作することは可能です。

それでは今から、順を追って組んでみましょう。

1. ユーザーフォームが初めて表示されるときに、コマンドボタン1を選択不可能にしておく
'========================================================================================
Private Sub UserForm_Initialize()           'ユーザーフォームが初期表示されたときに実行する
    CommandButton1.Enabled = False          'コマンドボタン1を選択不可能にする
End Sub
'----------------------------------------------------------------------------------------
2. オプションボタン 1または 2がクリックされたときに、コマンドボタン1を選択可能にする
'----------------------------------------------------------------------------------------
Private Sub OptionButton1_Click()           'オプションボタン1がクリックされたときに実行する
    CommandButton1.Enabled = True           'コマンドボタン1を選択可能にする
End Sub
'----------------------------------------------------------------------------------------
Private Sub OptionButton2_Click()           'オプションボタン2がクリックされたときに実行する
    CommandButton1.Enabled = True           'コマンドボタン1を選択可能にする
End Sub
'----------------------------------------------------------------------------------------
3. コマンドボタン1がクリックされたら、それを選択不可能にしてから、オプションボタン 1と 2をオフにする
'----------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()          'コマンドボタン1がクリックされたときに実行する
    CommandButton1.Enabled = False          'コマンドボタン1を選択不可能にする
    If OptionButton1.Value Then
        MsgBox "オプション1が選択されました", vbInformation, "すぐマク"
        OptionButton1.Value = False         'オプション1をオフにする
    Else
        MsgBox "オプション2が選択されました", vbInformation, "すぐマク"
        OptionButton2.Value = False         'オプション2をオフにする
    End If
End Sub
'----------------------------------------------------------------------------------------
4. コマンドボタン 2がクリックされたときのマクロ
'----------------------------------------------------------------------------------------
Private Sub CommandButton2_Click()
    MsgBox "中止ボタンが押されました", vbInformation, "すぐマク"
End Sub
'========================================================================================

サンプルブックのダウンロードは ここをクリック  (YNxv9a74_CommandButton.xls 49KB)
※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。
http://www.geocities.jp/happy_ngi/ Home | Contents | Gallery | Introduction | Service | Support | What's New!