0.はじめに
GAS活用ではシートやドライブ、フォームにスポットが当たりがちですが
Googleドキュメントも扱えます。
基本的な書き込みや改ページ、書式操作などをご紹介します。
また活用事例も簡単にご紹介します。
1.最初にbodyを取得
必ず最初にこの手順を行ってください。
基本的にここで取得したbodyに対して変更を重ねることになります。
また上書き保存や改ページはdocに対して実行します。
const doc = DocumentApp.openById(docid);
let body = doc.getBody();
2.ドキュメント内容を削除する
1つのドキュメントを繰り返しリセットして編集する場合、処理の頭で実行しておきましょう。
body.clear();
3.末尾に行を追加
ドキュメント末尾にテキストを追加します。
body.appendParagraph("追記テキスト");
4.右揃えや中央揃えを設定する
//右揃え
body.appendParagraph("追記テキスト").setAlignment(DocumentApp.HorizontalAlignment.RIGHT);
//左揃え
body.appendParagraph("追記テキスト").setAlignment(DocumentApp.HorizontalAlignment.LEFT);
//中央揃え
body.appendParagraph("追記テキスト").setAlignment(DocumentApp.HorizontalAlignment.CENTER);
5.文字サイズを設定する
body.appendParagraph("追記テキスト").editAsText().setFontSize('14');
6.太字・下線を設定する
//太字
body.appendParagraph("追記テキスト").editAsText().setBold(true);
//下線
body.appendParagraph("追記テキスト").editAsText().setUnderline(true);
7.文字色・背景色を設定する
他のメソッドと違って引数が複数あるので注意です。
開始位置、終了位置、色コードを設定します。
//文字色 1文字目~3文字目を黄色に
body.appendParagraph("text").editAsText().setForegroundColor(0,2,"#ffff00");
//背景色 2文字目~5文字目を赤背景に
body.appendParagraph("text").editAsText().setBackgroundColor(1,4,"#e60033");
8.ドキュメントに改ページを挿入する
項1で定義したドキュメントオブジェクトに対して実行します。
body.appendPageBreak();
9.ドキュメントを保存して閉じる
編集が終わった後に保存する必要がある場合、実行してください。
doc.saveAndClose()
10.メソッドチェーン
「太字にしてサイズ変えて右揃えにして・・・」を一気に書けます。
const text = "テストですよ";
body.appendParagraph(text)
.setAlignment(DocumentApp.HorizontalAlignment.RIGHT)
.editAsText().setFontSize('18')
.editAsText().setForegroundColor(0,text.length-1,"#e60033")
.editAsText().setBackgroundColor(0,text.length-1,"#ffff00")
.editAsText().setBold(true)
.editAsText().setUnderline(true);
11.番外:PDF保存
作成したドキュメントをPDFとしてドライブに保存します。
スプレッドシートをシート指定してPDF化するより安定します。
//ドキュメントをPDF形式でエクスポートするURL
const url = `https://docs.google.com/document/d/${ドキュメントのID}/export?format=pdf`;
//Access Tokenを取得
const token = ScriptApp.getOAuthToken();
//PDF形式でドライブに保存
const res = UrlFetchApp.fetch(url, {headers: {'Authorization': 'Bearer ' + token}}).getBlob().setName("保存PDF名称.pdf");
const folder = DriveApp.getFolderById("保存先フォルダID");
const pdfFile = folder.createFile(res);
12.活用例
- 安定したPDF作成の仕組みを作る(SS⇒PDF作成より安定する)
- 定型フォーマットのDocを作成するGASを作り、可変部分は変数にしておき
その時々で必要な値を入力した定型のドキュメントをワンクリックで作成可能にする
私も実務で1つ目のパターンを活用しています。
スプレッドシートからシート指定でPDF作成すると本当に安定しないのでこれで代用しています。
13.さいごに
ドキュメント作成に関するGoogle公式リファレンスはこちらです。
もっと細かく設定したい方は、公式情報も参照しつつ色々試してみてください!