9 選択コントロールの位置を取得する

フォーム上のコントロール(Controlオブジェクト)の「InSelection」プロパティで、デザインビュー上でのコントロールの選択状態を取得・設定することができます。”True”が選択状態、”False”が非選択状態です。

また、「Top」プロパティでコントロールの”上位置”を、「Left」プロパティで”左位置”を取得・設定することができます。

フォームのControlsコレクションからControlオブジェクトをループで取り出し、InSelectionプロパティが”True”であるものだけ処理することで、デザインビュー上で現在選択されているコントロールのそれぞれの上位置と左位置をリストアップすることができます。
  • VBAでのTopやLeftプロパティの単位は”Twip”です。1cm=567Twipとして換算すると、プロパティシートと同じ”cm”で表記することができます。
プログラム

Sub SampleCode_09()
'選択コントロールの位置を取得する

  Dim ctl As Control
  Const TWIP_CM = 567    '1cmのTwip値

  'アクティブフォームのすべてのコントロールのループ
  For Each ctl In Screen.ActiveForm.Controls
    With ctl
      If ctl.InSelection Then
        '選択されていたらコントロールの上位置と左位置を出力
        Debug.Print .Name,
        Debug.Print Format(.Top / TWIP_CM, "0.000cm"),
        Debug.Print Format(.Left / TWIP_CM, "0.000cm")
      End If
    End With
  Next ctl

End Sub

実行例
■実行前

■実行後
| Index | Prev | Next |



Copyright © T'sWare All rights reserved