23 すべてのフォームの各セクションの背景色を変更する

フォームオブジェクトでは、「Form.Section(インデックス)」(※注)という構文を使うことで、各セクションのオブジェクトを参照することができます。そのオブジェクトのプロパティをプログラムから設定することで、セクションに関するプロパティを変更することができます。
セクションの背景色を変更したい場合には「BackColor」プロパティを書き換えます。
  • 注:インデックスには本来は数値を指定しますが、その代りに次の組み込み定数を使うことができます。
  • 詳細セクションacDetail
  • フォームヘッダーセクションacHeader
  • フォームフッターセクションacFooter
  • ページヘッダーセクションacPageHeader
  • ページフッターセクションacPageFooter
プログラム

Sub SampleCode_23()
'すべてのフォームの各セクションの背景色を変更する

  Dim dbs As Database
  Dim ctn As Container
  Dim doc As Document
  Dim strFormName As String

  On Error GoTo Err_Handler

  Set dbs = CurrentDb
  Set ctn = dbs.Containers!Forms

  'すべてのフォームのループ
  For Each doc In ctn.Documents
    '1つ分のフォームのデザインビューを開く
    strFormName = doc.Name
    DoCmd.OpenForm strFormName, acDesign

    'セクションごとの背景色を設定
    With Forms(strFormName)
      'ヘッダーセクション
      .Section(acHeader).BackColor = RGB(0, 163, 240)
      '詳細セクション
      .Section(acDetail).BackColor = RGB(166, 226, 255)
      'フッターセクション
      .Section(acFooter).BackColor = RGB(227, 227, 227)
    End With

    'フォームを保存して閉じる
    DoCmd.Close acForm, strFormName, acSaveYes

  Next doc

Exit_Here:
  Exit Sub

Err_Handler:
  If Err.Number = 2462 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