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

GASを活用してメール内容をスプレッドシートに転記・書き出す手順ガイド

GASを使って、メール内容をスプレッドシートに転記したいけど、どうしたらいいのかな…?
猫男
猫男
catman
catman
よし、catmanがGASでメールをスプレッドシートに転記・書き出す手順を教えてやろう。

GASを始めるための基本設定

まずは、GASの基本的な設定だ。これを押さえておくと、次のステップに進みやすくなる。

GASプロジェクトを作成

まず、Googleドライブにアクセスして新規GASプロジェクトを作成する。

1. Googleドライブを開く。

2. 「+新規」ボタンをクリックし、「その他」から「Google Apps Script」を選択。

3. プロジェクトに適当な名前をつけて保存する。

スプレッドシートへの転記の準備

メール内容を転記するには、スプレッドシートを用意する必要がある。

スプレッドシートを用意

メールのどの情報をスプレッドシートに書き出すか考えて、適切な列を作成するんだ。

1. スプレッドシートを開き、自分のプロジェクト用に適宜列名を設定する(例:件名、送信者、内容)。

2. このスプレッドシートのURLをコピーしておく。後で使用する。

これでスプレッドシートの準備は完了だね!次は何をするの?
猫男
猫男
catman
catman
次は実際にメールを取得し、その情報をスプレッドシートに書き出してみよう。

GASを使ったメール取得と転記スクリプトの作成

ここで、GASを使ってGmailから情報を取り出し、スプレッドシートに転記するスクリプトを作成していく。

Gmailからメールデータを取得

GmailAppを使ってメール情報を取得する。以下が基本のスクリプトだ。


function getEmails() {
 var threads = GmailApp.getInboxThreads(0, 10);
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

 threads.forEach(function(thread) {
 var message = thread.getMessages()[0];
 var subject = message.getSubject();
 var sender = message.getFrom();
 var body = message.getPlainBody();
 
 sheet.appendRow([subject, sender, body]);
 });
}

このスクリプトでは、受信トレイの最初の10通のメールを取得し、それらをスプレッドシートに記入している。

スクリプトの内容解説

GmailApp.getInboxThreads(0, 10): 受信トレイの最初の10通のスレッドを取得する。

thread.getMessages()[0]: 各スレッドから最初のメッセージを取得する。

sheet.appendRow([subject, sender, body]): メールの件名、送信者、本文をスプレッドシートの新しい行に追加する。

  

練習問題

上記スクリプトを修正して、メールの受信日時をスプレッドシートに追加するスクリプトを書いてみよう。

  

解答・解説


function getEmailsWithTimestamp() {
 var threads = GmailApp.getInboxThreads(0, 10);
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

 threads.forEach(function(thread) {
 var message = thread.getMessages()[0];
 var subject = message.getSubject();
 var sender = message.getFrom();
 var body = message.getPlainBody();
 var dateReceived = message.getDate();

 sheet.appendRow([subject, sender, body, dateReceived]);
 });
}

GmailApp.getMessages(): スレッドが持つすべてのメッセージを取得する。

message.getDate(): メールの受信日時を取得する。

結果の配列に受信日時dateReceivedを追加し、スプレッドシートに記入している。

これでメールの受信時間も分かるようになったね!スプレッドシートがより見やすくなったよ。ありがとう、catman!
猫男
猫男
catman
catman
いい感じだな。これでGASの力を活かして、業務効率が上がること間違いなしだ。