Access

Accessでラベル印刷する際、ラベルの印刷開始位置を指定する方法

ACCESS途中印刷

今日はよくあるAccessのレポートを使ったラベル印刷です。

宛名シールだったりラベルだったりレポートで簡単に印刷できる訳ですが、このラベルシール、中途半端に余ったときの印刷方法にちょっと迷います。

何も知らないと上から印刷して、ひっくり返して今度は下から印刷・・・。

そして真ん中が残る・・・。ということになる場合があります。

今日はラベルシールの印刷開始位置を指定して印刷する手順をご紹介します。

印刷までの流れ

今回想定している印刷(プレビュー)までの流れはこんな感じです。

印刷までの流れ

①印刷実行画面で印刷プレビューボタンクリック

今回私が作った画面は検索条件入力項目・検索ボタン・検索結果リスト表示エリアがあり、かつリスト内から必要な行を選択できるような作りにしています。(ご紹介は割愛します)

②印刷開始位置指定画面でラベルの開始位置を指定(フォーム名:F_CDラベル印刷開始位置)

③プレビューで正しく印刷開始位置が設定されているか確認してから印刷実行(レポート名:RptCDラベル印刷)

それぞれのフォームまたはレポートでちょっとだけコードを書きますので詳しくご紹介します。

印刷開始位置を指定して印刷プレビューするプログラム

前準備

各フォームやレポートで使う変数をPublic変数として事前に定義しておきます。

共通モジュールなどがあればそのモジュールに定義しておけば良いかと思います。

Public cdLabelStart As Integer

印刷実行画面のプログラム

①の印刷実行画面、印刷プレビューボタンのクリックイベントに以下のコードをコピペしてください。

‘———————————————————————
‘プレビューボタンクリック時
‘———————————————————————
Private Sub cmdプレビュー_Click()
‘印刷ラベル表示
DoCmd.OpenForm “F_CDラベル印刷開始位置”, acNormal, , , acFormEdit, acDialog
DoCmd.OpenReport “RptCDラベル印刷”, acViewPreview
End Sub

②のフォームを呼び出した後、③のレポートを呼び出すプログラムです。

印刷開始位置指定画面でラベルの開始位置を指定

フォームのデザイン

ラベル位置指定

オプショングループを作成し、ラベル印刷枚数分のラベル(トグルボタン)を用意します。

今回のラベルは4列11行のラベルシールです。

各ボタンの値は1~44までを定義します。

Accessのウィザード機能を利用してオプショングループの設定をしていると「20個までしか定義できない」エラーが表示されます。

ウィザードでは20個までしか定義できませんが、デザインビューでは追加作成できます。

オプショングループ内でトグルボタンをコピペして数を増やしましょう。

フォームのコード

プレビューボタンを押された時は選択値をPublic変数にセットしてフォームを閉じます。

プレビューをクリックされなくてもフォームを閉じられたらPublic変数に現在の選択値をセットします。

とにかく、この画面はすぐに終了します。

レポート側のコード

レポート内ではまずヘッダーイベントで開始位置としてPublic変数に定義されている値を取得します。

詳細のフォーマット時に開始位置より前までのフォーマットはレイアウトをスキップ送りします。

その際レコードは移動しないようにMoveRecordはFalseにします。

これで開始位置より後から印刷を開始するようになります。

以上です。コピペで簡単にできると思いますのでやってみてくださいね。

ABOUT ME
アズビーパートナーズ
アズビーパートナーズ
プログラマーと社内SEとしての経験を活かして、 情報システム部門のご相談を承ります。 得意な分野はAccessによる短納期開発、 BIツール(QlikSense/QlikView)の開発です。 現在はCMSを利用したホームページの作成にも力を入れています。
今のスキルのままで大丈夫?

あなたのスキル。今のままで大丈夫ですか?

時代のニーズに合った開発スキルを身につけてあなたの価値を高めましょう。

\オンラインでも教室でも学べるおすすめのスクール/

TECH::CAMP(エンジニアスクール)

まずは基礎から・・・という方はProgateUdemyどっとインストールなどがおすすめ!

スキルアップについて詳しくはこちら