14 すべてのコントロールの背景色を変更する

フォームのControlsコレクションからControlオブジェクトをループで取り出し、それらの「BackColor」プロパティを同値に設定することで、複数コントロールの背景色をまとめて同じ色に変更することができます。
  • チェックボックスやオプションボタンなど、背景色を持たないコントロールのBackColorプロパティを設定しようとするとエラーが発生します。次のプログラムではその場合のエラー(エラー番号 438)は無視して続行するようにしています。
プログラム

Sub SampleCode_14()
'すべてのコントロールの背景色を変更する

  Dim ctl As Control
  Dim strLableName As String

  On Error GoTo Err_Handler

  'アクティブフォームのすべてのコントロールのループ
  For Each ctl In Screen.ActiveForm.Controls
    ctl.BackColor = vbGreen
  Next ctl

Exit_Here:
  Exit Sub

Err_Handler:
  If Err.Number = 438 Then
    '背景色を持たないコントロールへの設定エラー時
    Resume Next
  Else
    Beep
      MsgBox "エラー番号 : " & Err.Number & vbCrLf & _
             "エラー内容 : " & Err.Description, _
             vbOKOnly + vbCritical
  End If
  Resume Exit_Here:

End Sub

実行例
■実行前

■実行後(チェックボックスとオプションボタンには背景色はないので変化はありません)
| Index | Prev | Next |



Copyright © T'sWare All rights reserved