行毎に異なる背景色を表示して見易くするには(VBA使用版)


連続フォームの各行に異なる背景色を表示して見易くする方法を紹介します。ここで紹介する方法は、VBAコードを使用して実現していますので背景色を自由に設定できます。


  1. Access 2000を起動して Northwind.mdb を開きます。

  2. データベースウィンドウからフォームタブをクリックして、新規作成ボタンをクリックします。

  3. フォームウィザードを使用して図1に示すようなフォームを作成します。このフォームでは、商品テーブルの一覧を表示します。


    図1-商品テーブルの一覧を表示するめのフォーム作成


    メニューからコードのアイコンをクリックしてフォームモジュールを表示させます。フォームの読み込み時のイベントにリスト1のVBAコードをコピー&ペーストします。リスト1では、フォーム読み込み時、条件付き書式を設定しています。Accessの書式メニューから条件付書式を設定するのと異なり、前景色/背景色を自由に設定することができます。

    リスト1-フォームのOnLoadイベントで条件付き書式を設定
    
    Private Sub Form_Load()
      Dim ctl As Control
      
      For Each ctl In Me.Controls
        With ctl
          Select Case .ControlType
            Case acTextBox, acComboBox
              .FormatConditions.Delete
              .BackColor = 15592924
              With .FormatConditions.Add( _
                Type:=acExpression, _
                Expression1:="[商品コード] MOD 2")
                .BackColor = 13882281
              End With
          End Select
        End With
      Next ctl
      
    End Sub                


    Tip:
    フォームの詳細部(セクション)のみ検索するときは、リスト1For Each ctl In Me.Controls を For Each ctl In Me.Section(acDetail).Controls のように書き換えます。ヘッダー部(セクション)のみ検索するときは、For Each ctl In Me.Section(acHeader).Controls のように書き換えます。

     

  4. フォームをfrm条件付き書式設定その2Bの名称で保存してから、ビューモードのアイコンをクリックします。商品コードの奇数行と偶数行が異なる背景色で表示されます。


    図2-各行の背景色を交互に変えて表示させた例

  5. フォームを閉じてAccess 2000を終了します。