3 特定の種類のコントロールを選択状態する

フォーム上のコントロール(Controlオブジェクト)の「ControlType」プロパティを調べることで、コントロールの種類を取得することができます。また「InSelection」プロパティを設定することで、デザインビュー上での選択/非選択状態を切り替えることができます。

フォームのControlsコレクションからControlオブジェクトをループで取り出し、それぞれのControlTypeプロパティを取得、その値に応じて条件分岐することで、特定の種類コントロールだけ(たとえばテキストボックスやラベルだけ)を処理することができます。またInSelectionプロパティを”True”に設定することで、そのコントロールだけを選択状態にすることができます。

ControlTypeプロパティの値を照合する際は、次のような組み込み定数を指定することができます。
  • ラベルacLabel
  • テキストボックスacTextBox
  • コマンドボタンacCommandButton
  • コンボボックスacComboBox
  • リストボックスacListBox
  • チェックボックスacCheckBox
  • オプションボタンacOptionButton
  • トグルボタンacToggleButton
  • オプショングループacOptionGroup
  • サブフォームacSubform
  • タブacTabCtl
  • ページacPage
  • イメージacImage
  • 直線acLine
  • 四角形acRectangle
  • 改ページacPageBreak
  • 連結オブジェクトフレームacBoundObjectFrame
  • 非連結オブジェクトフレームacObjectFrame
  • ActiveXコントロールacCustomControl
  • 次のプログラムでもしテキストボックス以外は非選択状態にしたいという場合には、Else文を追加し、そこでInSelectionプロパティを”False”に設定します。
プログラム

Sub SampleCode_03()
'特定の種類のコントロールを選択状態する

  Dim ctl As Control

  'アクティブフォームのすべてのコントロールのループ
  For Each ctl In Screen.ActiveForm.Controls
    With ctl
      If .ControlType = acTextBox Then
        'テキストボックスなら選択状態にする
        .InSelection = True
      End If
    End With
  Next ctl

End Sub

実行例
■実行前

■実行後(テキストボックスを選択すると関連するラベルにもハンドルが付きます)
| Index | Prev | Next |



Copyright © T'sWare All rights reserved