現在デザインビューで開いていて、Access上で選択されている1つのフォーム、つまり”アクティブフォーム”において選択されているコントロールの一覧を収集します。
- 「Screen」オブジェクトの「ActiveForm」プロパティを使ってアクティブフォームを取得し、それを「Form」オブジェクトの変数「frm」にセットします。
- 「frm」内のすべてのコントロールのコレクションである「Controls」の中から、For Each~Nextステートメントでひとつずつコントロール情報を取り出し、「Control」オブジェクトの変数「ctl」にセットしていきます。
- 取り出されたひとつのコントロール情報のうち、そのコントロールが選択されているどうかを表す「InSelection」プロパティの値を調べます。
- その値が”True”であれば選択された状態になっているので、そのコントロールの名前である「Name」プロパティの値をイミディエイトウィンドウに出力します。
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
実行例:
※オレンジの枠線で囲まれ、周囲に■のハンドルが付いているのが”選択されている”コントロール
|