• 手順

    1. 下記のAPIを定義します。

      CreateDC
      GetDeviceCaps
      DeleteDC
      
    2. 下記の構造体を定義します。

      DEVMODE
      DEVNAMES
      PRTMIP
      
    3. VBAを使用しレポートをデザインビューで開きます。
    4. 開いたレポートのPrtDevModeプロパティを、DEVMODE構造体にコピーします。
    5. 開いたレポートのPrtDevNamesプロパティを、DevNames構造体にコピーします。
    6. 開いたレポートのPrtMipプロパティを、PRTMIP構造体にコピーします。
    7. DEVNAMES構造体のデバイスドライバ名と装置名、DEVMODE構造体の内容を使用し、CreateDCでデバイスコンテキストを作成します。
    8. [No.7]で作成したデバイスコンテキストを使用し、GetDeviceCpasで用紙の印刷可能領域を取得します。
    9. [No.7]で作成したデバイスコンテキストをDeleteDCで削除します。
    10. PRTMIP構造体のTopMarginメンバの値、レポートのヘッダー部分の高さ、詳細の高さ(複数行の場合は、詳細の高さ×行数)、フッター部分の高さを合計し、[No.8]で取得した値から引きます。
    11. [No.10]で計算した値(余り)が余白になるのでPRTMIP構造体のBottomMarginメンバの値に代入します。

    ※AccessのVBAおよびAPIの知識が必要です。

  • その他

    手順ではAPIを使用して用紙サイズを取得していますが、DEVMODE構造体の用紙サイズを使用してもいいかもしれません。
    この手順は、余白設定を手動ではなく自動でやる方法です。

説明がわからないなどありましたらお問い合わせでお知らせください。

ここに掲載された情報を使用したことによって発生した、いかなる損害に対しても
管理者である雅は一切責任を負いません。