#311 コマンドボタンをまとめて使用不可にする方法 フォーム、VBA

これも「#309 すべてのテキストボックスを空欄にする方法」の応用です。ここではフォーム内のすべてのコマンドボタンコントロール(定数"acCommandButton")を探して、その"Enabled/使用不可"プロパティをFalseに設定します。

ただし、これを実行する[実行]ボタン("cmdExec")もコマンドボタンコントロールなので、フォーカスがある状態で使用不可をFalseにしようとするとエラーとなってしまいます。そこでここではコマンドボタンの名前が"cmdExec"でないものだけを対象に処理するようにしています。もし他にテキストボックスなどが配置されている場合には、事前にそれにフォーカスを移動しておけば、"cmdExec"もいっしょに使用不可にすることができます。
Private Sub cmdExec_Click()
'[実行]ボタンクリック時

  Dim ctl As Control
  
  For Each ctl In Me.Controls
    With ctl
      If .ControlType = acCommandButton And _
         .Name <> "cmdExec" Then
        .Enabled = False
      End If
    End With
  Next ctl

End Sub

実行前 実行後
実行前 実行後
テキストボックスやチェックボックスは使用可能のままです
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved