請求書や納品書など、同じレイアウトのPDFをたくさん出力したいとき、1件ずつ画面を開いて「PDFで保存」を繰り返すのはとても手間がかかります。FileMakerでは、スクリプトを使うことで「ボタンひとつで、対象レコードをまとめてPDF出力」することができます。本稿では、初めての方でも試せるように、できるだけ専門用語をおさえながら、PDF帳票をスクリプトで連続出力する基本手順を整理してご紹介します。
PDF連続出力でやりたいことを整理しよう
まず、どんな動きをさせたいのかを簡単にイメージしておきます。
- 特定のレコード(例:当月分の請求書レコード)を対象にする
- 1レコードずつPDFを作成する(または1つにまとめる)
- ファイル名にレコードの情報(請求書番号や日付)を入れる
- 決まったフォルダに自動保存する
この記事では、「1レコード=1つのPDFファイル」で連続出力する、いちばん基本的なパターンを例に解説します。
事前準備:レイアウトと対象レコードを用意する
まずはPDF化したい帳票レイアウトを用意します。すでに請求書や見積書のレイアウトがある場合は、それを使って構いません。
次に、「どのレコードをPDF出力するか」を決めます。代表的な方法は次の2つです。
- 検索で対象レコードを絞り込む(例:請求年月が2024年4月のものだけ)
- フラグ用のフィールドを作り、印刷対象にチェックを入れたものだけを抽出する
スクリプトでは、「現在表示されている対象レコード」を前提に連続処理することが多いので、スクリプトを実行する前に対象レコードを絞り込んでおくと理解しておくと分かりやすいです。
基本の流れ:スクリプトでPDFを連続出力する考え方
スクリプトでPDFを連続出力するときの基本的な流れは、次の5ステップです。
- 対象レコードを絞り込む(検索や条件付き抽出)
- 対象レコードの件数を確認する
- 最初のレコードに移動する
- レコードごとに「PDFとして保存」を繰り返す
- 最後まで処理が終わったら終了メッセージを表示する
この「繰り返す」部分を担当するのが、ループ(Loop)というスクリプトステップです。ループの中で、PDFの保存とレコード移動を繰り返すイメージです。
具体的なスクリプト手順(基本版)
ここでは、FileMakerのスクリプトワークスペースで作る、基本的なサンプル手順を文章で紹介します。実際には、スクリプトステップ一覧から同じ名前のステップを選んで組み立ててください。
- (任意)対象レコードを検索
例:- 「レイアウト切り替え[請求書レイアウト]」
- 「検索モードに切り替え → 日付フィールドに条件を入力 → 検索実行」
- 対象レコードがあるか確認
「If[Get(FoundCount) = 0]」 → 「カスタムダイアログで『対象レコードがありません』と表示」 → 「スクリプトを終了」 - 最初のレコードに移動
「レコード/検索条件/ページへ移動[最初の]」 - ループを開始
「Loop」 - PDFとして保存
「PDFとして保存」ステップを使います。ここでポイントになるのが、保存先フォルダとファイル名です。
例として、請求書番号フィールド(InvoiceNo)をファイル名に含める場合:- 「$path」などの変数に「保存先フォルダ & InvoiceNo & ".pdf"」という形で保存パスを作る
- 「PDFとして保存[指定: $path; 対象: 現在のレコード; オプション: ダイアログなし]」のように設定
変数の設定は、「変数を設定」ステップで行います。WindowsかMacか、クライアントかサーバーかによってパスの書き方が少し変わりますので、最初は自分の環境でテストしながら調整するとよいでしょう。
- 最後のレコードかどうか判定
「If[Get(RecordNumber) = Get(FoundCount)]」
→ 最後のレコードなら「Exit Loop If(この If の中でループ終了)」 - 次のレコードへ移動
「レコード/検索条件/ページへ移動[次の; 最後の後で停止]」 - Loop の終わり
「End Loop」 - 処理完了のメッセージ表示
「カスタムダイアログを表示[PDF出力が完了しました。]」
このような構成にしておくと、対象レコードを変えるだけで、同じスクリプトを使い回せるようになります。
ファイル名や保存先を工夫して管理しやすくする
PDFをたくさん出力するときは、あとで探しやすいようにファイル名やフォルダ構成を工夫しておくと便利です。
- ファイル名に「日付」「請求書番号」「取引先名」などを組み合わせる
- 年月ごとにサブフォルダを分ける(例:2024-04フォルダ内に4月分を保存)
- FileMakerの計算フィールドや計算式を使って、自動的にパス文字列を組み立てる
たとえば、「2024-04_請求書_000123.pdf」のようにルールを決めておくと、ファイルを見ただけで内容が想像しやすくなります。
動作確認とエラー対策のポイント
最初から大量のレコードで試すのではなく、まずは2~3件だけで試すことをおすすめします。その際、次のような点を確認してみてください。
- 意図したレイアウトでPDFが作成されているか
- ファイル名が正しく付いているか(重複して上書きされていないか)
- 保存先フォルダに正しく出力されているか
また、ファイルパスの誤りやアクセス権限の問題で保存に失敗することがあります。その場合は、一時的に「ダイアログあり」でテストすると、エラーメッセージが確認しやすくなります。慣れてきたらダイアログを非表示にして、完全自動に近い形に仕上げていくとよいでしょう。
まとめ:まずは「小さく試して」感触を掴もう
FileMakerのスクリプトでPDF帳票を連続出力する基本は、
- 対象レコードをきちんと絞る
- ループで1件ずつPDFとして保存する
- ファイル名と保存先パスを計算で組み立てる
という3つのポイントを押さえることです。最初は少しとっつきにくく感じるかもしれませんが、数件のテストから始めれば、動きのイメージがすぐに掴めるはずです。基礎の形を作ってしまえば、あとは条件を変えたり、ファイル名のルールを変えたりして、さまざまな帳票に応用できます。ぜひ、自分の業務に合った形にカスタマイズしながら、作業時間の短縮とミスの削減につなげてみてください。