42 コントロール系 - アクティブフォームで選択されているコントロールを収集する

現在デザインビューで開いていて、Access上で選択されている1つのフォーム、つまり”アクティブフォーム”において選択されているコントロールの一覧を収集します。
  1. 「Screen」オブジェクト「ActiveForm」プロパティを使ってアクティブフォームを取得し、それを「Form」オブジェクトの変数「frm」にセットします。

  2. 「frm」内のすべてのコントロールのコレクションである「Controls」の中から、For Each〜Nextステートメントでひとつずつコントロール情報を取り出し、「Control」オブジェクトの変数「ctl」にセットしていきます。

  3. 取り出されたひとつのコントロール情報のうち、そのコントロールが選択されているどうかを表す「InSelection」プロパティの値を調べます。

  4. その値が”True”であれば選択された状態になっているので、そのコントロールの名前である「Name」プロパティの値をイミディエイトウィンドウに出力します。

    ※「InSelection」プロパティはデザインビューでのみ使用可能です。アクティブフォームがフォームビューなどになっている場合はエラーとなります。

Sub Sample_4_17()
'アクティブフォームで選択されているコントロールを収集する

  Dim frm As Form
  Dim ctl As Control

  Set frm = Screen.ActiveForm
  For Each ctl In frm.Controls
    With ctl
      If .InSelection Then
        Debug.Print .Name
      End If
    End With
  Next ctl

End Sub

実行例:
※オレンジの枠線で囲まれ、周囲に■のハンドルが付いているのが”選択されている”コントロール


| Index | Prev | Next |



Copyright © T'sWare All rights reserved