11 | 選択コントロールを関連するラベルに密着させる | ||
テキストボックスやコンボボックスなど、入力や選択を行うコントロールと関連付けられたラベルコントロール(テキストボックスなどの標題表示用のラベル)は、テキストボックスなどの「ラベル名」プロパティ(VBAでは「LabelName」プロパティ)で取得・設定できます。 フォームのControlsコレクションからControlオブジェクトをループで取り出し、そのLabelNameプロパティの値を取得、さらにそこに記されたラベルのControlオブジェクトを参照することで、ラベルの各種プロパティも参照することができます。 そして、そのラベルの”右位置”を「Left + Width」のプロパティ値の加算で求め、テキストボックスなどの「Left/左位置」プロパティに設定することで、両者の間隙をゼロにして密着させることができます。 同様に、ラベルの「Top + Height」の値をテキストボックスなどの「Top/上位置」プロパティに設定すれば、上下の密着を行うこともできます。
プログラム
Sub SampleCode_11() '選択コントロールを関連するラベルに密着させる Dim ctl As Control Dim strLableName As String Dim lbl As Label 'アクティブフォームのすべてのコントロールのループ For Each ctl In Screen.ActiveForm.Controls With ctl If .InSelection Then 'コントロールが選択されているとき On Error Resume Next 'ラベル名プロパティの値を取得 strLableName = .Properties("LabelName") If Err.Number = 0 Then 'エラーが発生していない(=ラベル名プロパティがある)とき 'そのコントロールの左位置をラベルの右端に合わせる Set lbl = Screen.ActiveForm.Controls(strLableName) .Left = lbl.Left + lbl.Width End If End If End With Next ctl End Sub 実行例
■実行前■実行後 |
|||
|
Copyright © T'sWare All rights reserved |