質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

2208閲覧

GAS replaceTextをその場で実行したい

tsuka91027

総合スコア6

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2020/05/25 09:25

前提・実現したいこと

以下の処理
1.原文のDocumentをreplaceText(書式を残したいので)
2.pdfにしたDocumentをeMailの添付ファイルにして送信

出てきた問題点

replaceTextが実行されるのはプログラム終了のタイミングみたいで、添付PDFは元の内容のまま!
Documentの内容はちゃんとリプレースされている。
デバッガーで動かすとreplaceTextを実行後止めてもDocumentはリプレースされていません。

該当のソースコード

GAS

1function okFunction() { 2 // Googleドキュメントからメールの件名と本文を取得、var docにドキュメントID(/d/から/editまでの間)を設定 3 var doc = DocumentApp.openById('Document ID'); 4 var subject = doc.getName(); 5 var attachmentBody = doc.getBody(); 6 //置換文字の定義 7 var company = 'SCI'; 8 var fname = 'Takashi'; 9 var sname = 'Tsukamoto'; 10 var Cmplmt = '2020/6/30'; 11 12 //テキストを置換 13 attachmentBody.replaceText('{団体名}', company).replaceText('{名}', fname).replaceText('{姓}', sname).replaceText('{履修期限}',Cmplmt); 14 15 //リプレースした督促状をPDF化する 16 var pdf = doc.getAs('application/pdf'); 17 //メールを送ります 18 //MailApp.sendEmail(email, subject, message); 19 GmailApp.sendEmail('メールアドレス',subject, 'test', 20{ 21 attachments:pdf 22} 23 ); 24}

試したこと

実行終了して添付PDFは原文のまま、Documentはリプレースされていることを確認。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。
大変困っています。
よろしくお願いします(いつもお願いばかりですいません)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

試していないのでダメだったらすいません。
恐らく、置換した後にドキュメントを保存していないためではないでしょうか。

attachmentBody.replaceText
の後の行に

GAS

1doc.saveAndClose(); 2 3var doc = DocumentApp.openById('Document ID');

を追加してみてはどうでしょう。

それと回答とは関係ないのですが、プログラムにインデントを正しく入れる癖を付けた方がいいと思います。
エラーが出た場合やプログラムを見直す際に分からなくなってしまいます。

投稿2020/05/25 11:03

編集2020/05/25 11:06
mkk

総合スコア378

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsuka91027

2020/05/26 02:22

mkkさん 迅速で適切な回答とアドバイスありがとうございました。 確認しました。 考えてみれば当然でした、本当に感謝です。 教えていただくだけで恐縮ですが、またよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問