HOME > 即効テクニック > AccessVBA > フォーム・レポート > フォームを開く際にすべてのテキストボックスのプロパティを設定する

即効テクニック

フォーム・レポート

フォームを開く際にすべてのテキストボックスのプロパティを設定する

(Access 97)
●詳細●
3つのテキストボックスとその他のコントロールが複数配置されているフォームで、開く際にすべてのテキストボックスのプロパティを設定するには、For Each...Nextステートメントを使って、フォーム上に配置されているすべてのコントロールを取得します。
For Each...Nextステートメントは、コントロールの各要素に対して、一連のステートメントを繰り返し実行するフロー制御ステートメントです。
繰り返し処理の中で、参照しているコントロールがテキストボックスかどうかを判断して、テキストボックスであったらプロパティの設定をします。

●準備●
フォームに3つのテキストボックスと、そのほかのコントロールを複数配置してください。
フォームのプロパティシートを表示して、[イベント]タブの[開く時]のドロップダウン矢印「▼」をクリックして、リストから[イベントプロシージャ]を選択してください。
右側のイベントプロシージャ表示ボタン[...]をクリックして、VBEを起動させ、表示されたコードウィンドウに次の処理を記述します。

●サンプル●
Private Sub Form_Open(Cancel As Integer)

    Dim myCtl As Control
    Dim i     As Integer

    'Controlsコレクションを列挙します。
    For Each myCtl In Me.Controls

        'コントロールがテキストボックスかどうかをチェックします。(1)
        If myCtl.ControlType = acTextBox Then
            'テキストボックスのプロパティを設定します。

            With myCtl

                i = i + 1

                MsgBox i & "つめのテキストボックスにフォーカスを移します"
                .SetFocus

                If i = 2 Then
                    MsgBox i & "つめのテキストボックスの高さを変えます"
                    .Height = 400
                End If

                MsgBox i & "つめのテキストボックスを浮き出し表示します"
                .SpecialEffect = 1

                MsgBox i & "つめのテキストボックスの背景色を設定します"
                Select Case i
                    Case 1
                        .BackColor = RGB(0, 0, 0)     'Black
                    Case 2
                        .BackColor = RGB(255, 255, 0) 'Yellow
                    Case Else
                        .BackColor = RGB(255, 0, 0)   'Red
                End Select

            End With

        End If

    Next myCtl

End Sub

●補足説明●
  1. ControlTypeプロパティは、コントロールの種類を示します。 組み込み定数についてはヘルプの「ControlTypeプロパティ」を参照してください。
  2. サンプルを実行すると、フォームが開かれると同時に、1つめのテキストボックスから順にプロパティが設定されていきます。 高さが変更されるのは2つめのテキストボックスのみで、背景色はそれぞれのテキストボックスで違い、すべてのテキストボックスが浮き出し表示されます。