エムオーテックス株式会社が運営するテックブログです。

自社のパワーポイントテンプレートを使って編集可能なパワポを自動生成するWebツールを作った話

自社のパワーポイントテンプレートを使って編集可能なパワポを自動生成するWebツールを作った話

はじめに

X Innovation推進室の小久保です。
今回は、社内標準テンプレートを使って編集可能なPPTを自動生成するWebツールを開発しました。
ここでは、その仕組みや工夫について紹介します。

概要

この記事では、社内標準テンプレートに沿ったパワーポイントを自動で生成するWebツールについて説明します。
AWSのサービスと、当社独自の生成AI基盤を組み合わせることで、簡易資料の初稿を短時間で用意できるのが最大の特徴です。
成果物はPPT形式でダウンロードでき、後から自由に編集できます。

背景と課題

軽量な資料を作成する際も、テンプレートの体裁を手作業で整える必要があり、地味に時間がかかっていました。
また、アジェンダ設計やストーリー構成が個人の経験に依存し、資料品質にばらつきが出るという課題もありました。

既存のソリューションとして、Marpなどのマークダウンベースのプレゼンテーション作成ツールがありますが、これらはHTML出力がベースとなるため、非エンジニアが後から編集するのは少しハードルがあります。
また、AIエージェントによる自動編集も社内全員が扱うには難しいという制約がありました。

そこで「軽い資料を作る仕組みなら内製するほうが早いのでは?」と考え、まずは自分の資料作成を効率化するためにツールを作り始めました。 正直なところ、まずは自分の資料作成を楽にしたいという動機が大きかったのですが、他の社員にも使ってもらえれば 全社的な工数削減に貢献できるのではないかと考えました。

目指した姿

テキストを入力するだけで、社内標準テンプレートに準拠したパワーポイントのドラフトが完成することを目指しました。
また、デスクトップアプリのような形にすると配布方法や共有方法が煩雑になるため、Webで完結することも条件としています。
現在は機微情報を含まない資料が対象で、社内ネットワーク下でIP制限をかけて運用しています。
完成後はPPT形式でダウンロードできるので、自由に追記・調整が可能です。

以下は画面例です。

初期画面

生成中のイメージ(キャプチャ)

生成の例(アジェンダ)

生成の例(サンプル)

スライドに含めたい文言を記入するだけで生成AIが要点を補足してくれるため、初稿づくりがスピードアップします。

仕組み全体像

AWS上にフロントエンドとバックエンドを構築し、生成AIへの問い合わせ先を当社独自のAI基盤として処理しています。
AI基盤に外部からアクセスする際IP制限をかけているため、許可用IPが必要(Elastic IP)で固定の費用が発生していますが 実際の資料作成にかかるコストは少ないです。

構成図例(一部省略あり), 右側の猫アイコンが自社の生成AI基盤

アーキテクチャ構成

  • フロントエンド: S3 + CloudFront - React SPA
  • API: API Gateway + Lambda (Python)
  • 生成AI: 当社独自のAI基盤
  • PPTX変換: python-pptxライブラリ
  • ストレージ: S3(テンプレート、生成ファイル、Webコンテンツ)
  • セキュリティ: KMS、WAF
  • ネットワーク: VPC + NAT Gateway(固定IP対応)

実装と工夫

テンプレート処理の仕組み

社内標準テンプレートをクラウドストレージに配置し、以下の構造とステップで自動処理しています:

  • 表紙: 会社情報やタイトルを自動設定
  • コンテンツスライド: コンテンツを追加

テンプレートには特定のプレースホルダー(スライドマスターで定義)を配置し、システムが自動的に値を置換します

  • プレゼンテーションタイトル
  • 所属部署名
  • 役職・氏名
  • その他の動的コンテンツ

AIレスポンス処理とバリデーション

AI基盤が生成した文章は以下のバリデーションを通してからスライド化します

# AIレスポンスの検証項目
- 構造化テキストの形式チェック
- スライド区切り文字の存在確認
- タイトル行の形式検証
- 表形式データの整合性チェック
- 文字数制限の確認
- 特殊文字のエスケープ処理

バリデーション通過後、以下の手順でテンプレートに挿入:

  1. 構造解析: AIが生成したテキストを構造化データに変換
  2. テンプレート読み込み: 社内標準テンプレートをメモリに展開
  3. プレースホルダー置換: 動的コンテンツを適切な位置に配置
  4. レイアウト調整: スライドサイズやフォント設定を自動調整
  5. 最終検証: 生成されたPPTXファイルの整合性確認

テキスト→PPTX変換処理

サーバーレス関数(Lambda)でpython-pptxを使用し、以下のイメージでPPTXを生成します。

# 入力テキストの構造例
メインタイトル
---
スライド1タイトル
- ポイント1
- ポイント2
---
スライド2タイトル(表)
- サンプル説明文

| 項目 | 内容 | 備考 |
|------|------|------|
| A | データ1 | 注釈1 |
| B | データ2 | 注釈2 |
  • “---”や特定のマークを利用してスライドを区切る。
  • 表形式テキストは自動的にPowerPoint表へ変換。

このようにマークダウンに近いフォーマットで生成AIに文章を出力させ、それを社内標準テンプレートに挿入する仕組みです。

スライド個別編集機能

生成した後にスライドを個別に編集する機能もあります。

  • 特定のスライドを選択して追加・修正の指示をAIに投げる
  • その結果をリアルタイムでプレビュー

生成速度と保管ポリシー

  • 生成時間: 1ファイルあたり約1分で作成可能
  • 保管: クラウドストレージに一時保存し、1日後に自動削除
  • セキュリティ: IP制限により外部からはアクセス不可
  • プレビュー: Microsoft Office Online Viewerを利用

利用ガイドと前提

  • 運用環境: 社内限定(IP制限あり)
  • 想定利用: 機微情報が含まれない軽い資料(例:勉強会・社内共有資料)
  • 出力編集: ダウンロード後は自由に編集可能
  • 対応形式: 編集可能なPPTX形式での出力

反応と今後

本ツールを社内で共有したところ、作成工程の簡易化や時間削減に対して好意的な反応をいただきました。

ユーザーからのポジティブコメント

今後の展開としては、以下を検討中です:
- 複数テンプレートの切り替え(用途別)
- レイアウトデザインのさらなる充実
- 全社的なドキュメント効率化を見据えた拡張

おわりに

以上、PowerPoint自動生成ツールを開発した取り組みの紹介でした。
社内標準に準拠したスライドを、短時間でかつ編集自在な形でアウトプットできるのが強みです。
できるだけ簡単に初稿を仕上げ、最後は手動で整えることで全体の作業時間を削減できます。
ここまで読んでいただき、ありがとうございました。