フォームやレポートのデザインにおいて、複数のコントロールの位置をまとめて微調整する方法です。ここではVBAのプログラムからフォームのコントロールのデザインを操作する方法を説明します。
- まず、適当な標準モジュールに次のプロシージャを記述します。
Public Sub MoveControl(Top, Left, Height, Width)
Dim frm As Form
Dim ctl As Control
'アクティブフォームをセット
Set frm = Screen.ActiveForm
'フォーム内のコントロールのループ
For Each ctl In frm.Controls
With ctl
'コントロールが選択されているとき
If .InSelection Then
'位置のプロパティを引数値に設定
If Top <> 0 Then .Top = Top
If Left <> 0 Then .Left = Left
If Height <> 0 Then .Height = Height
If Width <> 0 Then .Width = Width
End If
End With
Next ctl
End Sub
- 続いて、フォームのデザインビューにおいて位置調整したい複数のコントロールを選択します。なお、上記のプロシージャでは、高さや幅も微調整することができます。
- Accessのウィンドウにおいてそのフォームがアクティブになっている状態で、VBEのイミディエイトウィンドウから上記のプロシージャを呼び出します。このとき、各引数の値はTwip(1cmは567Twip)で指定します。
実行前:
実行後: 左位置プロパティを2500Twipに設定
|