ACCESS 印刷プレビューを出さずに印刷ダイアログを出す方法

ACCESSでは様々な帳票を印刷します。
印刷機能を作成する際に、基本的に利用できるのは、

1.印刷プレビューを表示する
2.印刷プレビューを表示せずにいきなり印刷する

のいずれかです。
一方で、印刷プレビューは表示せずに、プリンターを選択する印刷ダイアログを出したい場合もあると思います。

今回は、印刷プレビューを出さずに印刷ダイアログを出す方法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSで実際に作成したフォームやレポートを、その作成方法と共にご紹介していきます。

目次

DoCmd.RunCommand acCmdPrintで印刷ダイアログを表示

ACCESSで印刷ダイアログを表示するにはDoCmd.RunCommand acCmdPrintを利用します。

DoCmd.RunCommandはACCESSの標準的なメニュー画面のコマンドを利用するためのメソッドです。
引数に「acCmdPrint」を指定することで、ファイルメニューから「印刷」をクリックした場合と同じ動作をします。

上記のように印刷ダイアログが表示されます。

印刷プレビューを出さずに印刷ダイアログを出す処理

それでは、DoCmd.RunCommand acCmdPrintを使って、印刷プレビューを出さずに印刷ダイアログを出す処理を作成しましょう。

以下の処理では、フォームに設置した「領収書_ボタン」を押した際に、領収書レポートを印刷するダイアログを表示します。

内容を解説します。

6行目でDoCmd.RunCommand acCmdPrintを行っています。

DoCmd.RunCommand acCmdPrintを単独で利用すると、その際に選択されているオブジェクトを印刷しようとします。そのため、DoCmd.RunCommand acCmdPrintを実行する前に印刷対象となるレポートを選択状態にする必要があります。

そこで利用するのがDoCmd.SelectObjectメソッドです。
DoCmd.SelectObjectメソッドは、指定したオブジェクトを選択するメソッドです。

事前にDoCmd.SelectObjectメソッドで領収書レポートを選択した上で、DoCmd.RunCommand acCmdPrintを行うことで、領収書レポートを印刷ダイアログ表示することができます。

レポートの指定レコードのみを印刷する

ここまでであれば以下のコードで十分です。

しかし、上記で印刷処理を行うと、領収書レポートにすべてのレコードが表示されてしまいます。
レポートは指定したレコードのみを印刷する処理がほとんどです。

そのため、事前にレポートに表示するレコードを限定する必要があります。
そこで、

で、先にレポートを開いておきます。
この際、DoCmd.OpenReportの引数であるフィルターとして売上IDを指定することで、特例のレコードを指定してレポートを開くことができます。

また、最後に

を入れてレポートを閉じておきます。
これを行わないとレポートが開いたままになってしまうので注意しましょう。

印刷プレビューを非表示にする

ここまでで以下のコードになります。

実際に実行すると、これだけでは印刷プレビューが表示されてしまいます。
今回は印刷プレビューが表示されないようにしたいので、Echoメソッドを使って画面の再描画を一時的に抑止します。

処理を始める前に

で画面の再描画を停止し、処理が終わった後で

で再描画を有効化させます。

ここまででようやく印刷プレビューを出さずに印刷ダイアログを出すことができるようになります。

以上、印刷プレビューを出さずに印刷ダイアログを出す方法をご紹介しました。


この記事の内容を実際に試したい方へ

本記事の内容を実際にACCESSを動かしながら確認したいという方向けに、記事で紹介した機能が実装されたサンプルファイルを販売しています。記事内で解説しているテーブル、クエリ、フォーム、レポート、VBAのプロシージャなどをそのまま動く形で実装しました。

学習用としてはもちろん、加工して自社業務に利用することも可能です。
ご興味のある方は以下からご覧ください。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に300以上のACCESSデータベースの開発・修正実績のあるはこにわガジェット(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

フッターバナー

最後までお読みいただき、ありがとうございました。

印刷プレビューを出さずに印刷ダイアログを出す方法

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次