#124 すべてのレポートのプレビューサイズを揃える方法 レポート、VBA

レポートをプレビューすると、最後にデザインを保存したときの位置やサイズでウィンドウが表示されます。ちょっと懲り過ぎの感もあるかもしれませんが、たくさんのレポートを持ったデータベースアプリケーションを配布するような場合、レポートごとにばらばらの位置やサイズで表示されるのは多少見苦しいところがあります。そこでここでは、その位置やサイズを揃える方法を紹介します。

次のプロシージャでは、データベース内にあるすべてのレポートをデザインビューで開き、ウィンドウの位置とサイズを調整、最後にその状態でレポートを上書き保存します。
Public Sub SetInitReportSize()

  Dim dbs As Database
  Dim ctn As Container
  Dim doc As Document
  Dim strRptName As String

  Set dbs = CurrentDb
  Set ctn = dbs.Containers!Reports
  For Each doc In ctn.Documents
    strRptName = doc.Name
    DoCmd.OpenReport strRptName, acViewDesign
    DoCmd.SelectObject acReport, strRptName
    DoCmd.MoveSize 500, 500, 12000, 7000  ←これらは任意の値に設定します
    On Error Resume Next
    DoCmd.Save acReport, strRptName
    On Error Goto 0
    DoCmd.Close acReport, strRptName, acSaveNo
  Next doc

End Sub
※レポートのデザインが複雑だったりすると読み込みに時間がかかってしまい、「DoCmd.Save」でエラーが発生することがあります。レポートが完全に開き切っていない状態で保存しようとするためにです。そのようなエラーによってプログラムが止まってしまうのを避けるため、途中で「On Error Resume Next」を使っています。この場合は、レポートは開いたままになりますので、最後に手動でレポートを上書き保存します。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved