4章 カスタマイズ4-3フォーム

カレントフィールドを強調表示する[Access97]


カレントフィールドを強調表示できます。フォーム上のどのコントロールにフォーカスがあるか、分かりにくいことがあります。そんなときに有効な設定です。
テキストコントロール、コンボボックスコントロールのプロパティを変更する方法と、イベントに関数を設定する方法があります。
前者は、コントロールの[背景色]、[背景スタイル]プロパティを変更します。後者は、コントロールの[フォーカス取得後]、[フォーカス喪失後]イベントに[立体表示]、[背景色]プロパテーを変化させる関数を設定します。


<プロパティを使った方法の操作手順>
  1. [背景色]プロパティにフォーカスが移った時に表示する色を設定します。
  2. [背景スタイル]プロパティでは”透明”を選択します。
    上記の順に設定してください。[背景色]プロパティを変更すると[背景スタイル]プロパティが自動的に”普通”に戻ります。


<関数を使った方法の操作手順>
フォームを[デザイン]で開き、フォームの[プロパティ]画面を表示します。
  1. 処理する関数を作成
    ツールバーの[表示]-[コード]をクリックします。[クラスモジュール]画面が表示します。下記の関数を記述します。
    Ap_Effect関数では、パラメータが"On"のとき[立体表示]をくぼみにし、[背景色]を変えます。パラメータが"On"以外のとき[立体表示]をなしにし、[背景色]を変えます。
    Private Function Ap_Effect(apClass As String) As Boolean
    'カレントフィールドを強調表示する
        Dim ctlWrk As Control
        Set ctlWrk = Screen.ActiveControl
        If apClass = "On" Then
            ctlWrk.SpecialEffect = 2            '立体表示(くぼみ)
            ctlWrk.BackColor = -2147483643      '背景色
        Else    'Offの処理
            ctlWrk.SpecialEffect = 0            '立体表示(なし)
            ctlWrk.BackColor = 14937316         '背景色
        End If
    End Function
    
  2. 関数をイベントに設定
    フォームのすべての入力コントロールの[フォーカス取得後]、[フォーカス喪失後]イベントに下記内容を設定します。
    1. [フォーカス取得後]の内容
      =Ap_Effect("On")
      
    2. [フォーカス喪失後]の内容
      =Ap_Effect("Off")
      
  3. [立体表示]、[背景色]プロパテーの確認
    フォームのすべての入力コントロールの[立体表示]、[背景色]プロパテーをAp_Effect("Off")の状態にします。
    1. [立体表示]の内容
      0
      
    2. [背景色]の内容
      14937316
      
  4. [開く時]イベントに下記内容を設定
    Me.SetFocus
    Private Sub Form_Open(Cancel As Integer)
        Me.SetFocus
        If Not apFrmOpen(Me) Then
            Cancel = True
        End If
    End Sub