earthpg:GAS専門のプログラミングスクール

GASを使ってGoogleドキュメントのデータを簡単に取得する方法

GASでGoogleドキュメントのデータをどうやって取得するんだろう…全然わからないよ。何か手軽にできる方法ってないのかな?
猫男
猫男
catman
catman
心配するな。catmanがGASを使ってGoogleドキュメントのデータを取得する方法を教えてやろう!簡単にできるから安心するさ。

GASでGoogleドキュメントを扱う準備

まずはGASを使ってGoogleドキュメントを操作するための基本的な準備を整える必要がある。

GASプロジェクトを作成する

GASを使うには、Googleドライブからスクリプトエディタを開いてプロジェクトを作成することから始まる。

1. Googleドライブにログインし、右上の「新規」ボタンをクリックする。

2. 「その他」から「Google Apps Script」を選択し、新しいプロジェクトを作成する。

必要なサービスの利用を有効にする

Googleドキュメントを操作するには、GASから「DocumentApp」サービスを利用する必要がある。

プロジェクトを作成したらすぐに「DocumentApp」を使えるようになるが、「getActiveDocument」や「getBody」メソッドを使うための認証スコープに注意しよう。

Googleドキュメントのデータを取得する方法

さっそくGASを使ってGoogleドキュメントのデータを取得してみよう。

Googleドキュメントを開いてデータを取得する

まずは、特定のGoogleドキュメントを開いてその内容を取得するスクリプトを書くことが大事だ。


function getDocumentData() {
  const docId = 'YOUR_DOCUMENT_ID_HERE';
  const doc = DocumentApp.openById(docId);
  const body = doc.getBody();
  Logger.log(body.getText());
}

このスクリプトを使えば、特定のGoogleドキュメントの本文を取得できる。

スクリプトの解説

「openById(docId)」は、指定したIDでドキュメントを開くメソッドだ。

「getBody()」は、ドキュメントの本文を取得するためのメソッドさ。

「getText()」は、本文のテキストを取得するメソッドで、ログに出力することができる。

こうやってログに出力するんですね!思ったより簡単そう!
猫男
猫男

GASでのGoogleドキュメント操作の応用

複数のデータを取り出して活用する

内容を部分ごとに分けたり、修正したりすることも可能だ。


function extractAndModify() {
  const docId = 'YOUR_DOCUMENT_ID_HERE';
  const doc = DocumentApp.openById(docId);
  const body = doc.getBody();
  const paragraphs = body.getParagraphs();

  paragraphs.forEach(paragraph => {
    Logger.log(paragraph.getText());
  });
}

このスクリプトでは、各段落情報を抽出し順にログに出力する。

スクリプトの解説

「getParagraphs()」メソッドは、本文を段落ごとにListとして取得する。

「forEach()」関数で、各段落を順に取得し、ログに出力できるようにする。

  

練習問題

1. 特定のGoogleドキュメント内のすべての画像のURLを取得するスクリプトを作成してみよう。

2. 各段落の最初に行番号(1, 2, 3, …)を挿入するスクリプトを書いてみよう。

解答・解説


function getImagesUrl() {
  const docId = 'YOUR_DOCUMENT_ID_HERE';
  const doc = DocumentApp.openById(docId);
  const body = doc.getBody();
  const images = body.getImages();

  images.forEach(image => {
    const url = image.getAttributes().get('linkUrl');
    Logger.log(url);
  });
}

このスクリプトは、ドキュメント内の画像のURLを取得し、ログに出力する。

「getImages()」メソッドで画像要素を取得し、各画像のURLを「getAttributes().get(‘linkUrl’)」で取得する。

  


function addLineNumber() {
  const docId = 'YOUR_DOCUMENT_ID_HERE';
  const doc = DocumentApp.openById(docId);
  const body = doc.getBody();
  const paragraphs = body.getParagraphs();

  paragraphs.forEach((paragraph, index) => {
    paragraph.setText((index + 1) + '. ' + paragraph.getText());
  });
}

このスクリプトでは、各段落のテキストを取得し、行番号を付加した新しいテキストに更新する。

「setText()」メソッドで段落の内容を更新し、行番号を付ける。

これで色々なデータを取得できそう!次はもっと複雑な操作も学んでみたい!
猫男
猫男
catman
catman
その意気だ。GASを使えば、Googleドキュメントの操作は無限大に広がる。積極的に活用しよう!