Power Automateを動画で学ぼう!Udemyキャンペーン中

GASでGoogleドキュメント操作する方法【Google Apps Script】

目次

この記事について

じょじお

Google Apps Script(GAS)でGoogleドキュメントを操作する時の良く使う構文を集めました。随時更新中です。

DocumentAppクラスの階層について

DocumentAppクラスの階層構造
  • DocumentApp
    • body
      • Paragraph(パラグラフ:段落)
        • text
        • 画像

基本的にテキストの操作はParagraph単位で行う

基本構文

ドキュメントを開く

//Googleドキュメントを開く
var doc = DocumentApp.openById("ID");
var doc = DocumentApp.openByUrl("url");

テキストを編集する

var paragraphs = body.getParagraphs();
var p1 = paragraphs[0]

//段落にテキストを挿入する。
p1.insertText( 0, "text" );
//段落にテキストを追加する。
p1.appendText("text");

ドキュメントを保存する

Goolgeドキュメントはブラウザで基本的に即自的に変更が確定されますが、GASで操作する時はsaveしないと変更が確定しないことがあります。編集操作を行う場合は、必ず保存処理を入れるようにしましょう

  var doc = DocumentApp.openById(file.id);
  doc.saveAndClose();

コードサンプル集

指定のフォルダに新規Googleドキュメントを作成する

  var folder = DriveApp.getFolderById("folderId"); 
  var doc = DocumentApp.create("doc name");
  var docFile = DriveApp.getFileById(doc.getId()); 
  folder.addFile(docFile);

文章の最後に文章を追記する

  var body = DocumentApp.getActiveDocument().getBody();

  body.appendPageBreak();//ページ区切りを入れる
  body.appendParagraph("hogehoge");//段落をアペンドする

文章の最初に文章を挿入する

  var body = DocumentApp.getActiveDocument().getBody();
  body.insertParagraph(0, "hogehoge"); //段落番号を0が文章の最初

段落ごとに処理する

  //段落ごとに翻訳してみる。
  var body = DocumentApp.getActiveDocument().getBody();
  var paragraphs = body.getParagraphs();
  var textBefore ; // 翻訳前テキスト
  var textTranslated ; // 翻訳後テキスト
  paragraphs.forEach( p => {
    textBefore = p.getText();
    if (textBefore != ""){
      textTranslated = LanguageApp.translate(textBefore, "ja", "en");
      p.setText(textTranslated);
    };

表を差し込む


function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var body = doc.getBody();
  var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
  body.insertParagraph(0, doc.getName())
      .setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(rowsData);
  table.getRow(0).editAsText().setBold(true);
}

文字列置換(テンプレート文字列による置換)

Googleドキュメントの操作は、下記のような長い文章を扱うことが多いのでJavascriptのテンプレート文字列を使うと楽です。

/*
/テンプレートとなるGdocファイル新規作成する
*/
function createTemplate() {
  var body = DocumentApp.getActiveDocument().getBody();
  //置換用文字列
  body.appendParagraph('{name}');
  body.appendParagraph('{address}');
  body.appendParagraph('{city} {zip}');
}

/*
/上で作成したテンプレートの置換用文字列を指定の文字列に置換する
*/
function searchAndReplace() {
  var body = DocumentApp.getActiveDocument()
      .getBody();
  var client = {
    name: 'お客様 タロウ',
    address: '新宿',
    city: '東京',
    zip: 'xxx-xxxx'
  };

  body.replaceText('{name}', client.name);
  body.replaceText('{address}', client.address);
  body.replaceText('{city}', client.city);
  body.replaceText('{zip}', client.zip);
}

現在のカーソル位置に文章を挿入する

  var doc = DocumentApp.getActiveDocument();
  doc.getCursor().insertText(text);
  //getcusorはアクティブドキュメントにしか使用できない

ファイル名操作

  var doc = DocumentApp.getActiveDocument();
  doc.getBlob().getName(); //拡張子あり。
  doc.getName(); //上と一緒。拡張子なし。

GASを学ぶには?

書籍で学ぶなら、GAS本最強のこちらがオススメ!

GAS初学者の方がテキスト1冊買うならこれ一択です。幅開く網羅されているので基本が身に付きます。

動画で学ぶならコチラがオススメ!

動画で学ぶならコチラがおすすめです。UdemyのGAS講座はいくつかありますが、他の講座と比較しても圧倒的レビュー数と高評価です。万が一の返金保証があるので安心して購入ができます。

参考

ノンプログラマーでも自動化スキルを身につける。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
目次
閉じる