1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GAS】Googleフォーム送信時にドキュメントテンプレートからPDFを自動生成してGmailで即座に添付返信する方法

1
Posted at

はじめに
Googleフォームでお問い合わせや各種申請を受け付けた際、回答内容を反映したPDF書類(受領書・見積書・参加証など)を自動生成し、即座にメール添付返信したいケースは多くあります。

外部のアドオンや有料SaaSを使わず、Google Apps Script (GAS) のみで完全無料で完結させる実装パターンを解説します。

全体フロー
Google Form: ユーザーが回答を送信

GAS Trigger: フォーム送信時(onFormSubmit)を検知

Template Replace: Googleドキュメントのテンプレート内の {{プレースホルダー}} をフォーム回答値で置換

PDF Export: 置換後のドキュメントをPDFとして出力&Google Driveへ保存

Gmail Send: 生成したPDFを添付して回答者へ自動返信

実装手順

  1. テンプレート(Googleドキュメント)の作成
    PDFのベースとなるGoogleドキュメントを作成します。動的に値を挿入したい箇所に {{お名前}} のようにプレースホルダーを設定しておきます。

  2. GASソースコード
    以下のコードをスプレッドシートのスクリプトエディタに配置します。

はじめに
Googleフォームでお問い合わせや各種申請を受け付けた際、回答内容を反映したPDF書類(受領書・見積書・参加証など)を自動生成し、即座にメール添付返信したいケースは多くあります。

外部のアドオンや有料SaaSを使わず、Google Apps Script (GAS) のみで完全無料で完結させる実装パターンを解説します。

全体フロー
Google Form: ユーザーが回答を送信

GAS Trigger: フォーム送信時(onFormSubmit)を検知

Template Replace: Googleドキュメントのテンプレート内の {{プレースホルダー}} をフォーム回答値で置換

PDF Export: 置換後のドキュメントをPDFとして出力&Google Driveへ保存

Gmail Send: 生成したPDFを添付して回答者へ自動返信

実装手順

  1. テンプレート(Googleドキュメント)の作成
    PDFのベースとなるGoogleドキュメントを作成します。動的に値を挿入したい箇所に {{お名前}} のようにプレースホルダーを設定しておきます。

  2. GASソースコード
    以下のコードをスプレッドシートのスクリプトエディタに配置します。

  3. トリガーの登録
    スクリプトエディタのトリガーメニューから、イベントの源: スプレッドシートから / イベントの種類: フォーム送信時 で onFormSubmit を登録します。

ポイントと注意点
一時ファイルのクリーンアップ: ドキュメントをPDF化した後、コピーした元ドキュメント(copyFile)を setTrashed(true) で削除しておくと、Google Driveが散らかりません。

トリガーオブジェクト(e): スプレッドシートバインド型とフォームバインド型で e.response の構造が変わるため注意してください。

現場でそのまま使えるカスタマイズ済みコード・詳細マニュアル
エラーハンドリング、デザインが崩れない設定、設定用GUIを備えた即運用可能な完全版スクリプトおよび詳細な導入手順は、noteにて公開しています(B2B Tools) 。実務へ即投入したい方は併せてご活用ください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?