2024/03/10

Notes - Excel 連携:#33)帳票を PDF で保存

前回は、作成した帳票を Excel ファイルとして保存する方法を紹介しました。今回は PDF や XPS 形式で保存する方法を紹介します。


PDF や XPS 形式の保存

Excel の操作では [ファイル] - [エクスポート] メニューを使用して PDF や XPS 形式で出力できます。通常の保存とは別の機能として提供されています。

VBA でも同様で、別のメソッド ExportAsFixedFormat が用意されています。

Workbook.ExportAsFixedFormat メソッド (Excel)

メソッドには引数が多数ありますが、重要なのは初めの 2 つです。

1 つ目は Type です。この引数は出力形式を指定します。設定できる値は XlFixedFormatType 列挙 に定義されていますが、現時点では次の 2 種類だけです。

定数 説明
0 xlTypePDF PDF 形式で出力
1 xlTypeXPS XPS 形式で出力


2 つ目は FileName で、説明するまでもありませんが、保存するファイル名ですね。


LotusScript で記述すると次のようになります。

   Call oXls.Workbooks(1).ExportAsFixedFormat(xlTypePDF, "E:\Notes-Excel#33.pdf")

なお、上記 XlFixedFormatType 列挙 の 2 つは、xlXls ライブラリに事前に定数宣言しています。

'XlFixedFormatType 列挙
Public Const xlTypePDF = 0
Public Const xlTypeXPS = 1


サンプルプログラム

では、前回のエージェントを修正して PDF で保存するように修正すると次のようになります。

  ・・・
   '印刷設定
   Call xPageSetup(oSheet)

   '作成した帳票を PDF で保存
   oXls.DisplayAlerts = False
   Call oXls.Workbooks(1).ExportAsFixedFormat(xlTypePDF, "E:\Notes-Excel#33.pdf")
   Call oXls.Workbooks(1).Close()
End Sub

ただ、前回と違い Excel シート自身は保存していません。通常だと、保存せず終了すると『保存しますか?』と聞いてきます。今回のコードでは DisplayAlerts = False がセットされているため確認なく終了できてはいますが、あまり丁寧なコードではありませんね。

このような場合に使用できるのが Close メソッドの 1つ目の引数 Savechanges です。False をセットすると保存の確認なしに閉じることができます。

Workbook.Close メソッド (Excel)

これを利用すると次のようになります。結果は何も変わりませんが...

   Call oXls.Workbooks(1).Close(False)


このプログラムを実行すると指定したファイル名で PDF ファイルが出力されます。たったこれだけのコードで PDF が作成できます。なかなか便利な機能ですね。


まとめ

今回紹介した方法を使えば、ノーツのデータを PDF に変換できます。

Excel 経由となってしまいますが、逆に言うと Excel の機能を使ってノーツではできないことができるようになります。今回のような帳票やグラフを挿入した文書(PDF)が体裁よく出力できるということですね。

ノーツの可能性を広げる機能ですので、ぜひとも挑戦ください。


前回 Notes - Excel 連携 次回


0 件のコメント:

コメントを投稿