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

 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つめのテキスト
  ボックスのみで、背景色はそれぞれのテキストボックスで違い、すべてのテキスト
  ボックスが浮き出し表示されます。

Access97/2000



戻る


Excel Word Access VBA! モーグ