フォームを開く時に、ボタンの位置に合わせてフォームのサイズを設定する : Access VBA

フォームを開くたびにサイズがバラバラになるよりも、ボタンなどのコントロールの位置に合わせて、いつも同じ方がソフトとしてはカッコイイかと思いますので、DoCmd.MoveSizeを使い設定します。

VBAを入力する場所は、フォームを開く時のForm_Openイベントか、読み込み時のForm_Loadイベントになります。


■設定前のフォーム

下フォームのようにボタン位置に合わせて、フォームサイズをドラッグしサイズを調整します。
この状態でフォームを閉じます。
ボタン位置に合わせたフォームサイズ

再度フォームを開き直すと、下のように閉じた時とは違うサイズになってしまいます。
再度開き直したフォーム

■ Access VBA 実行コード

下画像のようにForm_Openイベント内に設定するVBAを作成しました。

Me!コマンド0.Left + Me!コマンド0.Widthで、フォーム左端からボタンの右端の幅を取得しています。
Me!コマンド0.Top + Me!コマンド0.Heightで、フォーム上端からボタンの下端の高さを取得しています。
DoCmd.MoveSizeで、フォームサイズを設定します。

もし、フォームの表示位置も設定したい場合は、DoCmd.MoveSize 500,1000, lw, lhのように、1番目にLEFT位置を2番目にTOP位置を指定します。
Form_Openイベント内に設定したVBA

Option Compare Database

Private Sub Form_Open(Cancel As Integer)
    Dim lw As Long
    Dim lh As Long
    
    lw = Me!コマンド0.Left + Me!コマンド0.Width + 500
    lh = Me!コマンド0.Top + Me!コマンド0.Height + 1000

    DoCmd.MoveSize , , lw, lh
    
End Sub

BackHome BackTips Backメニュー

Copyright(C) FeedSoft