プロが教える店舗&オフィスのセキュリティ対策術

アクセスのフォームの自動中央寄せを「はい」にしてるのですが

Private Sub Form_Load()
DoCmd.SelectObject acForm, "", True
DoCmd.RunCommand acCmdWindowHide
End Sub

をやり、ナビゲーションウインドウを非表示にしようとすると、
中央によらないのですが、
ナビゲーションウインドウを非表示にしつつ、中央にフォームを寄せることは不可能でしょうか?

A 回答 (1件)

これでどうかな?


Private Sub Form_Load()
Dim iW As Long, iH As Long
DoCmd.ShowToolbar "Ribbon", acToolbarNo
'Application.CommandBars("Status Bar").Visible = False
DoCmd.SelectObject acForm, "", True
DoCmd.RunCommand acCmdWindowHide

Application.Echo False '画面の描画をしない、ちらつき防止
DoCmd.SelectObject acForm, Me.Name
DoCmd.Maximize '最大化
iW = Me.InsideWidth 'フォームのサイズ取得
iH = Me.InsideHeight

DoCmd.Restore
Debug.Print iW, iH, Me.InsideWidth, Me.InsideHeight
DoCmd.MoveSize Right:=(iW - Me.WindowWidth) / 2, down:=(iH - Me.WindowHeight) / 2
Application.Echo True '後始末
End Sub


自動中央寄せ、サイズ自動修正、画面に合わせる
に、いいえ。
境界線スタイルに、ダイアログ。

Access2010で試しましたが、
重たいフォームや何かが原因で無駄な足掻きになるかも?

蛇足ですが、Access2010では
リボン・ナビゲーションウィンドウを表示する素の状態であっても
自動中央寄せを有効にしていても結構ずれてますね。
(私のコードでも少しずれますが)
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/12/28 10:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています