2026.04 / REV.01 ARTICLE
ARTICLE / DATAVERSE-REPORT-COMPARISON

Power Apps / Power Automate で帳票をPDF出力すると、だいたいここで詰まる — Excel・Wordテンプレート、PDF関数の限界と5つの出力方法の比較

DATE
2026-04-06
REVISION
A
AUTHOR
スルガクラフト合同会社
SHEET
01 / 01

見積書、請求書、発注書。ExcelやWordで作っていた帳票を、Power AppsやPower Automateで出そうとする方は多いと思います。アプリの画面をPDFにする。テンプレートに値を差し込んで、PDFにして、メールで送る。最初の1枚が出た瞬間は「これで行ける」と思うものです。

本番で回し始めると、だいたい同じところで詰まります。

日本企業の帳票要件は独特です。B4・B5の用紙サイズ、方眼紙レイアウトに罫線びっしり、印影の透過合成、セル結合の嵐。海外製品が想定する「A4にテーブルを流し込む」だけでは到底カバーできない世界があります。

本記事では前半で、Power AppsのPDF出力と、Power AutomateのExcel / Word帳票で詰まるポイントを整理します。後半では、その先の選択肢として、Dataverseから帳票を出力する主な5つの方法を日本企業の帳票要件を軸に比較します。私自身がすべての方法を検証した上での所感です。


Power Apps / Power Automateで帳票をPDF出力すると詰まるところ

Power AppsのPDF関数は試験段階、Printは1ページだけ

キャンバスアプリには、画面をPDFにするPDF関数と、ブラウザの印刷ダイアログを開くPrint関数があります。手軽ですが、帳票の出力手段としては本番に向きません。

  • PDF関数は試験段階(experimental)の機能です。既定では無効で、Microsoft自身が本番利用を想定していないと明記しています。
  • PDFはアプリを動かしている端末の上で作られるため、端末の性能に左右されます。画像やデータが多いと、アプリが落ちることもあります。
  • 入れ子のギャラリーは使えません。明細の中に明細がある帳票は組めません。
  • フォントによっては、日本語などラテン文字以外や太字がPDFに出ないことがあります。
  • Print関数は複数ページを印刷できません。モバイル端末やSharePointのフォームでも動きません。

画面のスクリーンショットを紙にする程度なら足ります。用紙サイズと改ページが決まっている帳票は、この道では出せません。

Wordテンプレートへの差し込みはプレミアム

Wordテンプレートに値を差し込むアクション(Populate a Microsoft Word template)とPDF変換は、Word Online (Business) コネクタの機能です。このコネクタは、Power Automateではプレミアム扱いです。M365のライセンスで回せるつもりで作り始め、本番展開の段階でライセンスの話が出てきます。

ヘッダーに印影やロゴを置けない

Wordテンプレートの画像差し込みは、ヘッダーの中では使えません(Microsoft公式の既知の制限)。社判やロゴを毎ページのヘッダーに置く日本の帳票では、ここでレイアウトをやり直すことになります。差し込んだ画像は縦横比を保って縮小されず、テンプレート側の枠の大きさに合わせられる点も、印影では地味に効きます。

明細は繰り返せても、繰越や頁小計は作れない

明細行は「繰り返しセクション」で可変にできます。ただしWordは文章として流れるだけなので、1ページに収まらなかったときの「次頁へ繰越」や頁ごとの小計は作れません。伝票系の帳票では、ここが一番の壁になります。

Excelはテーブル前提で、帳票の「セル」に書けない

Excel Online (Business) コネクタの行操作は、すべてExcelの「テーブル」が前提です。方眼紙レイアウトの帳票の決まったセルに値を置く、という操作はありません。やるならOffice Scriptsを書いて「スクリプトの実行」で呼ぶことになり、ここで市民開発の範囲を出ます。スクリプトの実行には、10秒に3回・1日1,600回という呼び出し上限もあります。

ファイルのロックと同時実行

コネクタが触ったExcelファイルは、最大6分ロックされることがあります。複数の実行や手作業の編集が同じファイルに重なるのも、サポート外です。テンプレートを上書きして使い回す作りにすると、申請が同時に2件来た日に壊れます。テンプレートをコピーしてから書き込む作りに直すと、今度はフローが膨らみます。

PDF変換で崩れる・止まる

Wordの「PDFに変換」は、2分以内に変換できない文書はタイムアウトします。游明朝のように私用領域の文字を使うフォントは、埋め込まれていないとPDFで正しく表示されません。機密の秘密度ラベルが付いた文書は、変換そのものができません。Excelには専用のPDF変換アクションがなく、OneDriveなどのファイル変換を経由することになりますが、印刷範囲や改ページはExcel側の設定頼みで、狙った1枚に収めるのに苦労します。

どこまでなら標準機能で足りるか

少量・定型・社内向けなら、Power AppsのPDF出力やPower AutomateのExcel / Word帳票で十分です。印影、方眼紙、B4、繰越、同時実行のどれかが要件に入った時点で、テンプレート差し込みの延長では限界が来ます。 その先の選択肢が、以下の5つです。


方法一覧

1. SSRS(SQL Server Reporting Services)

Microsoft純正の帳票エンジンで、RDLファイルでレイアウトを定義します。Dataverseとの接続はFetchXMLレポートとして行い、MDA(モデル駆動型アプリ)のレポート機能に直接統合できます。

メリット:

  • Dataverseネイティブ統合(MDAの「レポートの実行」から直接呼べる)
  • 追加ライセンス不要
  • FetchXMLでデータ取得するため、セキュリティロールが自動適用される

デメリット:

  • RDLの開発ツール(Report Builder / Visual Studio)が古く、開発体験が厳しい
  • 日本語帳票特有のピクセル単位のレイアウト制御が困難
  • テンプレート変更のたびにRDLファイルを再アップロードする必要がある
  • 方眼紙レイアウトや複雑なセル結合は事実上不可能

2. Paginated Reports(Power BI)

SSRSのクラウド版という位置づけで、Power BIサービス上で動作します。RDLベースのレポートをPower BI上で作成・配信できます。

メリット:

  • SSRSの資産(RDLファイル)をある程度流用可能
  • Power BI Serviceでのスケジュール配信やサブスクリプションが使える
  • Power BI Report Builderで開発(SSRSより若干モダン)

デメリット:

  • Power BI Premium/PPUライセンスが必須(PPUで約2,500円/ユーザー/月)
  • Dataverseへの接続にはデータゲートウェイまたはDirectQueryの設定が必要
  • 日本語帳票の細かいレイアウト制御はSSRS同様に制約あり
  • Dataverseのセキュリティロールとの統合が間接的

3. DocumentsCorePack(ISV製品)

Dynamics 365/Dataverse向けのサードパーティ製ドキュメント生成ツールです。Wordテンプレートにプレースホルダを埋め込み、Dataverseデータをマージして帳票を生成します。

メリット:

  • Wordテンプレートベースで、業務担当者でもテンプレート編集可能
  • MDAに統合されたUIで操作性が良い
  • PDF出力に標準対応
  • N:N関連のデータも柔軟に取得できる

デメリット:

  • ライセンスコストが発生(ユーザー数に応じた課金体系)
  • Wordベースのため、Excel方眼紙レイアウトの再現は不可
  • 印影画像の透過合成や動的バーコード生成には追加カスタマイズが必要
  • ISVへの依存(製品ロードマップは自社でコントロールできない)

4. Word/Excelテンプレート(モデル駆動型アプリ標準機能)

モデル駆動型アプリ(MDA)に標準搭載されているドキュメントテンプレート機能です。Wordテンプレートでは、Dataverseのフィールドをプレースホルダとして埋め込み、レコード画面から直接Wordファイルを生成できます。Excelテンプレートでは、ビューのデータをExcelに流し込んで出力します。設定 > テンプレート から管理します。

メリット:

  • 追加ライセンス不要(Dataverse標準機能)
  • MDAのレコード画面から直接出力できる(ボタン一発)
  • Wordテンプレートは業務担当者でも作成・編集が可能
  • 関連エンティティのデータも1:Nでテーブル出力できる
  • 学習コストが低い

デメリット:

  • Wordテンプレートはレイアウトの自由度が低い(Wordの書式制約に縛られる)
  • Excelテンプレートはデータの流し込みのみで、帳票レイアウトの制御はできない
  • 方眼紙レイアウト・セル結合・罫線の細かい制御は不可
  • 印影合成やバーコード生成は不可
  • 改ページ制御ができない(ページまたぎの表が崩れる)
  • 画像フィールド(印影等)のテンプレート埋め込みは非対応

5. Azure Functions + openpyxl(Python自作)

Azure Functions上でPythonを動かし、openpyxlライブラリでExcelファイルを直接生成する方法です。Dataverseとの通信はS2S認証(Entra IDアプリユーザー)で行います。

メリット:

  • レイアウトの自由度が最も高い(方眼紙、セル結合、印影透過、バーコードすべて対応可能)
  • Excelテンプレートを業務担当者が直接編集できる
  • B4/B5含む任意の用紙サイズに対応
  • Dataverse FetchXMLで直接データ取得(セキュリティロールの恩恵あり)
  • ランニングコストが安い(Azure Functions従量課金 or Premium共用)

デメリット:

  • Python + openpyxlの開発スキルが必要
  • Excelファイル生成のため、PDF変換には別途仕組みが必要
  • 自前で保守する必要がある(バグ修正、バージョンアップ)
  • openpyxlの仕様(insert_rowsがテーブル参照を自動更新しない等)への理解が必要

比較表

評価項目SSRSPaginated ReportsDocumentsCorePackWord/Excel標準openpyxl自作
日本語帳票対応
B4/B5用紙△△××◯
方眼紙レイアウト××××◯
印影透過合成△△△×◯
罫線の細かい制御△△△×◯
セル結合△△××◯
コスト
初期ライセンス◯ 無料× Premium必須△ ISVライセンス◯ 無料◯ 開発費のみ
ランニングコスト◯ 無料× 月額課金△ 月額課金◯ 無料◯ AF従量課金
開発工数△ RDL習得△ RDL習得◯ 低い◯ 最小× 高い
運用性
テンプレート変更△ RDL再デプロイ△ RDL再デプロイ◯ Word編集◯ Word/Excel編集◯ Excel編集
Dataverse統合度◯ ネイティブ△ ゲートウェイ経由◯ MDA統合◯ MDAネイティブ◯ S2S認証
PDF出力◯◯◯△ Word経由△ 別途変換
バーコード/QR××△×◯

どの方法を選ぶべきか

帳票要件は案件によって大きく異なります。以下のフローで判断するのが現実的です。

ステップ1: 帳票の複雑さを判定する

  • 「A4に表を流し込むだけ」「宛名ラベル程度」 → シンプル帳票
  • 「方眼紙レイアウト」「印影」「B4/B5」「複雑な罫線」 → 日本語重厚帳票

ステップ2: シンプル帳票の場合

  • まず MDA標準のWord/Excelテンプレート を検討。追加コストゼロでレコード画面から直接出力できる
  • 既存のSSRSスキルやRDL資産がある → SSRS をそのまま活用
  • スケジュール配信や組織横断の帳票管理が必要 → Paginated Reports(ただしPremiumライセンスの覚悟)
  • テンプレート管理を業務部門に任せたい → DocumentsCorePack

ステップ3: 日本語重厚帳票の場合

  • 予算が潤沢(年間500万円以上) → SVF Cloud等の専用帳票SaaS を素直に選ぶ
  • 予算は抑えたいがレイアウト要件は妥協できない → openpyxl自作
  • 「方眼紙だがバーコードや印影は不要」 → DocumentsCorePackで近似レイアウトを検討する余地あり

判断のポイント: 「今の帳票をそのまま再現したい」という要件が出た時点で、標準機能では厳しくなります。その帳票が本当にそのレイアウトである必要があるのか、業務側と合意を取るのが最初の仕事です。


私たちが自作を選んだ理由と結果

私たちは複数のDataverse案件で帳票要件に向き合ってきました。結論として、Azure Functions + openpyxlによる自作の帳票エンジンを開発・運用しています。

選定理由はシンプルです。

  1. クライアントの帳票が方眼紙レイアウト + 印影 + B4/B5だった — 標準機能やSSRSではカバーできない要件でした
  2. SVF Cloud等の専用SaaSは年間500万円以上 — 中規模案件のコスト構造に合わない
  3. Excelテンプレートを業務担当者が管理したかった — RDLファイルの管理を情シスに押し付けたくない

実際に構築したエンジンの特徴を簡潔に挙げると:

  • Excelテンプレートにプレースホルダ(Mustache風)を記述 するだけでテンプレート定義が完了
  • 明細行の展開はExcelテーブル(ListObject)を使用し、テーブルスタイルが自動適用される
  • 方眼紙レイアウトにはセルコメントマーカー方式で対応。結合セルのパターンを自動複製する
  • 印影画像はPNG透過合成、バーコード/QRコードは動的生成に対応
  • Dataverse FetchXML 1本でヘッダー + 明細を一括取得。セキュリティロールが効く
  • 連票(複数レコード一括出力)はシート複製方式で、FetchXMLのIN演算子で1回のAPI呼出で全データ取得
  • 実行履歴はDataverseテーブルに自動記録(いつ・誰が・どのテンプレートで出力したかを追跡可能)

ランニングコストは、Azure Functions Premium EP1(他の機能と共用)の按分で月額数千円程度。SVF Cloudの1/10以下のコストで、必要十分な帳票出力を実現できています。

もちろん万能ではありません。PDF出力には別途変換の仕組みが必要ですし、openpyxlの挙動(insert_rowsがテーブル参照を自動更新しない等)を理解した上で実装する必要があります。自前保守のコストは正直にかかります。


まとめ

Dataverseからの帳票出力は「これ一択」という正解がありません。帳票の複雑さ、予算、チームのスキルセット、運用体制によって最適解は変わります。

  • まずは標準機能(Word/Excelテンプレート)から始めるのが鉄則
  • SSRSやPaginated Reportsは既存資産があるなら有効
  • DocumentsCorePackはテンプレート管理の手軽さが魅力
  • 日本語帳票の要件が重い場合、自作か専用SaaSかの二択に絞られる

帳票出力でお困りの方、特に「既存帳票のレイアウトをDataverseで再現したいが方法が見つからない」という状況でしたら、お気軽にご相談ください。要件を聞いた上で、どの方法が現実的かを一緒に整理できます。


関連記事

← BACK TO JOURNAL END OF SHEET