Accessテクニックのホームへ戻る

■ レポートの余白を設定する (2002,2003,2007)

 

レポートの余白を設定する

 

レポートの余白(上、下、左、右)を設定します。コンボボックスからレポートを選択すると、選択したレポートがプレビューモードで表示されます。さらに、レポートの余白がフォームのテキストボックスに表示されます。余白を変更したときは、[設定]ボタンをクリックしてレポートに反映します。

 

 

1. 新規データベース作成

Accessを起動したら、ツールバーから新規作成のアイコンをクリックして、作業フォルダworkW174.mdbを作成します。

 

2. レポート、モジュールをインポート

Windowsのエクスプローラから、174.mdb(このページの最後からダウンロードできます)をダブルクリックして開きます。データベースウィンドウのオブジェクトから[レポート]をクリックしたら、レポート(rptSample1, rptSample2, rptSample3)をドラッグしてW174.mdbのデータベースウィンドウにドロップします。同様の手順で、モジュール(basHelper)をドラッグ&ドロップします。レポート、モジュールがインポートされたら、174.mdbを閉じます。

 

 

3. 新規フォーム作成

データベースウィンドウのオブジェクトから[フォーム]をクリックして、右側の新規オブジェクトのショートカットから[デザインビューでフォームを作成する]をダブルクリックします。フォームのデザインビューが表示されたら、ツールボックスのコントロールウィザード無効になっていることを確認します。

 

ツールボックスからコンボボックステキストボックス四角形ラベルコマンドボタンをクリックしたら、図のようにフォームの詳細セクションに作成します。ツールバーからプロパティのアイコンをクリックして、プロパティウィンドウを表示したら、表のようにプロパティを設定します。

 

フォームにコンボボックス、テキストボックス、コマンドボタンなどを作成する

 

 

フォームとフォームに作成したコントロールのプロパティ

コントロールの種類

プロパティ

フォーム

ポップアップ

はい

コンボボックス

名前

cboReports

値集合タイプ

値リスト

テキストボックス1(上)

名前

txtTop

テキストボックス2(下)

名前

txtBottom

テキストボックス3(左)

名前

txtLeft

テキストボックス4(右)

名前

txtRight

ラベル

標題

余白(ミリ)

背景色

16777215(白)

境界線スタイル

実線

コマンドボタン

名前

cmdUpdate

標題

設 定

 

4. コードビューに切り替えてイベント登録

ツールバーからコードのアイコンをクリックしてVBEを表示します。コードビューが表示されたらOption Explicitの直後に、次のイベントとプロシージャを追加します。(イベントプロシージャは、ドロップダウンリストからオブジェクトプロシージャを選択すると自動生成されますので、手入力する必要ありません。)

 

Private mstrReport As String

 

Private Sub Form_Load()

  fsFillReportList Me.cboReports

End Sub

 

Private Sub Form_Unload(Cancel As Integer)

  If Len(mstrReport) Then

    DoCmd.Close acReport, mstrReport

  End If

End Sub

 

Private Sub cboReports_AfterUpdate()

  If Len(mstrReport) Then

    DoCmd.Close acReport, mstrReport

  End If

 

  mstrReport = Me.cboReports.Value

  DoCmd.OpenReport mstrReport, View:=acViewPreview

  With Reports(mstrReport).Printer

    Me.txtLeft = fsToMillimeters(.LeftMargin)

    Me.txtRight = fsToMillimeters(.RightMargin)

    Me.txtTop = fsToMillimeters(.TopMargin)

    Me.txtBottom = fsToMillimeters(.BottomMargin)

  End With

End Sub

 

Private Sub cmdUpdate_Click()

  With Reports(mstrReport).Printer

    .LeftMargin = fsFromMillimeters(Me.txtLeft)

    .RightMargin = fsFromMillimeters(Me.txtRight)

    .TopMargin = fsFromMillimeters(Me.txtTop)

    .BottomMargin = fsFromMillimeters(Me.txtBottom)

  End With

End Sub

 

5. フォームを開く

VBEのツールバーから表示(Access)のアイコンをクリックして、Accessのウィンドウに切り替えます。Accessのツールバーからフォームビューのアイコンをクリックしてフォームを開きます。コンボボックスからレポート[rptSample1]を選択すると、レポートの余白(上、下、左、右)が表示されます。さらに、レポートがプレビューモードで表示されます。レポートの余白を変更したときは、[設定]ボタンをクリックしてレポートに反映します。

 

コンボボックスからレポートを選択して余白を変える

 

 

●解説

 

コンボボックスからレポートを選択したとき、レポートの余白を表示するには、コンボボックスの更新後処理/AfterUpdateイベントを使用します。このイベントでは、コンボボックスから選択したレポートをプレビューモードで開いて、レポートの余白(上、下、左、右)をテキストボックスに表示します。なお、レポートの余白はtwipの単位(1440twips=1inch, 1inch=2.54cm)で格納されていますので、mmの単位に変換して表示します。

 

コンボボックスの更新後処理イベント

Private Sub cboReports_AfterUpdate()

  コンボボックスからレポート名取得

  mstrReport = Me.cboReports.Value

  レポートをプレビューモードで開く

  DoCmd.OpenReport mstrReport, View:=acViewPreview

  レポートの余白を取得してフォームに表示する

  With Reports(mstrReport).Printer

    Me.txtLeft = fsToMillimeters(.LeftMargin) ‘ 左余白

    Me.txtRight = fsToMillimeters(.RightMargin) ‘ 右余白

    Me.txtTop = fsToMillimeters(.TopMargin) ‘ 上余白

    Me.txtBottom = fsToMillimeters(.BottomMargin) ‘ 下余白

  End With

End Sub

 

余白を変更して[設定]ボタンをクリックしたときは、クリック時/OnClickイベントでテキストボックスに格納されている余白をレポートに反映します。レポートの余白は、twipの単位で設定する必要がありますのでmmtwipに変換します。

 

設定ボタンのクリック時のイベント

Private Sub cmdUpdate_Click()

  レポートの余白設定

  With Reports(mstrReport).Printer

    .LeftMargin = fsFromMillimeters(Me.txtLeft) ‘ 左余白

    .RightMargin = fsFromMillimeters(Me.txtRight) ‘ 右余白

    .TopMargin = fsFromMillimeters(Me.txtTop) ‘ 上余白

    .BottomMargin = fsFromMillimeters(Me.txtBottom) ‘ 下余白

  End With

End Sub

ダウンロード (174.lzh)