Google Apps Script (GAS) を使って、Google フォームの回答を元に Google ドキュメントを作成し、その内容を PDF 形式で送信する自動化プロジェクトを進めている方へ向けた解説記事です。特に、フォームから取得した回答をあらかじめ配置したテキストボックスに自動的に入力する方法について詳しく説明します。
Google ドキュメントでテキストボックスを操作する方法
Google ドキュメント内に配置したテキストボックスに対して、GAS を使ってフォームの回答内容を挿入するためには、まずドキュメント内で使用される「プレースホルダー」を活用します。プレースホルダーを指定しておくことで、後で自動的に内容を置換できます。
以下に、具体的なコード例を示します。
function createDocumentFromForm(response) { var templateId = 'YOUR_TEMPLATE_ID'; var doc = DocumentApp.openById(templateId); var body = doc.getBody(); var textBox = body.findText('{PLACEHOLDER}'); if (textBox) { body.replaceText('{PLACEHOLDER}', response.formAnswer); } doc.saveAndClose();}
このコードでは、Google ドキュメントに含まれる「{PLACEHOLDER}」というテキストをフォームから得た回答内容に置き換えています。
スクリプトでのプレースホルダーの置換
GASを使用してGoogleドキュメント内のテキストボックスを操作する際には、正確なテキストの置換を行うために「replaceText」メソッドを使用します。これを活用して、特定のテキストボックス内に自動的にフォームデータを挿入することができます。
ここで重要なのは、テキストボックスにプレースホルダーを事前に設定しておき、スクリプト内でそのプレースホルダーに対応する値を挿入するというアプローチです。これにより、さまざまなフォームの回答に対して柔軟に対応できます。
PDF化してメールで送信
生成したドキュメントを PDF 形式に変換し、指定されたメールアドレスに自動で送信する方法も簡単に実装できます。以下のコードでは、Google ドキュメントを PDF に変換し、メールで送信しています。
function sendDocumentAsPdf(docId, emailAddress) { var doc = DriveApp.getFileById(docId); var pdf = doc.getAs('application/pdf'); MailApp.sendEmail(emailAddress, 'Your Document', 'Please find the attached document.', { attachments: [pdf] });}
まとめ
Google Apps Scriptを使って、Google フォームの回答内容を自動でGoogleドキュメント内のテキストボックスに反映させ、PDFに変換してメール送信する仕組みを作ることができました。これにより、作業を効率化し、時間を大幅に短縮することができます。上記のコード例を参考に、自分のプロジェクトに適用してみてください。
コメント