#733 PDFエクスポート後に開くかどうかをチェックボックスで指定する例 レポート、VBA

Accessのマニュアル操作でレポートのプレビューを開くと、リボンは下図のようなものに変わります。


ここで[PDFファイルまたはXPS]ボタンをクリックすると、次のようなダイアログが開き、出力先のPDFファイルのパスやオプションなどを指定することができます。


一方、プログラムを使ってPDFファイルにエクスポートする場合には「DoCmd」オブジェクトの「OutputTo」メソッドを使いますが、出力先のパスなどはコード上で直接指定するため、上記のようなダイアログは自動では開きません。ダイアログを表示するには別の処理が必要です。しかし、ダイアログの左下にある[発行後にファイルを開く]というオプションについては、自分で作ったフォームに簡単に組み込み、その設定を「OutputTo」メソッドに渡すことができます。


それには、次のようなフォーム、プログラムを作成します。

サンプルフォーム:

ここでは例として下記のようなコントロール名としています。
  • PDFファイルの発行先先パスを入力するテキストボックス → txt発行先パス
  • 発行後にファイルを開くかどうかを指定するチェックボックス → chk発行後オープン
  • [発行]のコマンドボタン → cmd発行

[発行]ボタンクリック時の処理:

Private Sub cmd発行_Click()
'[発行]ボタンクリック時

  'R_名簿レポートをPDFファイルにエクスポート
  DoCmd.OutputTo acOutputReport, "R_名簿", acFormatPDF, Me!txt発行先パス, Me!chk発行後オープン

End Sub

ポイントは、「OutputTo」メソッドの5番目の引数に発行後にファイルを開くかどうかをTrue/Falseで指定することです。もちろん開くならTrueを指定します。そしてここではその選択をチェックボックスで行っていますので、単にそのコントロールを引数に指定するだけです。それによって、チェックマークが付いているかどうか、すなわちTrueかFalseが引数として渡されることになります。

実行例:



【補足】
次のようなコードを使うことで、チェックボックスやフォームは使わずにメッセージボックスでそれを選択することもできます。
Dim blnAutoOpen As Boolean

blnAutoOpen = (MsgBox("発行後にPDFファイルを開きますか?", vbYesNo + vbQuestion) = vbYes)
DoCmd.OutputTo acOutputReport, "R_名簿", acFormatPDF, "D:\名簿.pdf", blnAutoOpen


| Index | Prev | Next |



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