本記事では、Google スプレッドシートとGoogle Apps Script(GAS)を使用して、複数の宛先にGmailの下書きを一括作成する方法をご紹介します。
この方法を活用することで、メール作成作業を大幅に効率化できます。
Googleサービスの連携
Gmailの一括下書きと一括送信を実現するためには、Googleスプレッドシート、Google Apps Script (GAS)、Gmailの3つのサービスを連携させる必要があります。
ここでは、今回の処理における、それぞれのサービスの役割を説明します。
Googleスプレッドシート
Googleスプレッドシートは、主にデータ管理の役割を担います。
今回のサンプルでは、メールの宛先、件名、本文などの情報を一覧形式で管理します。
また、スプレッドシートに処理を実行するためのボタンを配置し、直感的な操作を可能にします。
Google Apps Script (GAS)
GASは、GoogleスプレッドシートとGmailを橋渡しする重要な役割を果たします。
スクリプトを通じて以下の処理を実行します:
- スプレッドシートからデータを読み取り、Gmailの下書きを自動生成
- 処理の進行状況のログ出力
Gmail
Gmailでは、実際にGASによって生成された下書きの保存を実施します。
スプレッドシートとGASエディタの準備
まずは、GoogleスプレッドシートとGASのスクリプトエディタを準備していきます。
1. Google スプレッドシートを開く
まず、GoogleドライブやGoogleアプリ一覧から、編集したいGoogleスプレッドシートを開きます。
2. スプレッドシートにデータを入力する
そして、Googleスプレッドシートにメール作成に必要なデータを入力します。
本記事では、サンプルとして下記のデータをスプレッドシートに入力します。
スプレッドシートの入力データ例:
名前 | メールアドレス | 件名 | 本文 |
---|---|---|---|
田中 | user1@example.com | 会議のリマインド | =A2 & “様 11/1(金)に予定されている会議のリマインドです。 よろしくお願いいたします。” |
佐藤 | user2@example.com | 会議のリマインド | =A3 & “様 11/1(金)に予定されている会議のリマインドです。 よろしくお願いいたします。” |
鈴木 | user3@example.com | 会議のリマインド | =A4 & “様 11/1(金)に予定されている会議のリマインドです。 よろしくお願いいたします。” |
高橋 | user4@example.com | 会議のリマインド | =A5 & “様 11/1(金)に予定されている会議のリマインドです。 よろしくお願いいたします。” |
3.GASのスクリプトエディタを開く
メニューバーの「拡張機能」を左クリックし、「Apps Script」を選択します。
「Apps Script」を選択すると、スクリプトエディタが新しいタブで開きます。
Gmailの下書きを一括作成するスクリプト
続いて、GASのスクリプトエディタでGmailの下書きを一括作成するスクリプトを作成します。
このスクリプトを使えば、スプレッドシートに記載されたメールの宛先、件名、本文を取得し、複数の宛先のGmailの下書きを一括で自動作成することができます。
スクリプトを作成する
まず、新しいタブでスクリプトエディタが開かれたら、以下のスクリプトをコピーして貼り付け、プロジェクトを保存します。
function createDrafts() {
// UIオブジェクトを取得
var ui = SpreadsheetApp.getUi();
// 確認ダイアログを表示
var response = ui.alert(
'下書きの作成',
'スプレッドシートのデータに一致する下書きを作成しますか?',
ui.ButtonSet.YES_NO
);
// Noを選択された場合、処理を中止
if (response !== ui.Button.YES) {
ui.alert('下書きの作成をキャンセルしました。');
return;
}
// アクティブなシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// シートのデータ範囲を取得
var dataRange = sheet.getDataRange();
// データ範囲の値を2次元配列として取得
var data = dataRange.getValues();
// 作成した下書きの数をカウントする変数
var draftsCreated = 0;
// データの各行に対して処理を実行
for (var i = 1; i < data.length; i++) {
var row = data[i];
var recipient = row[1];
var subject = row[2];
var body = row[3];
// Gmailの下書きを作成
GmailApp.createDraft(recipient, subject, body);
draftsCreated++;
}
// 作成した下書きの数を通知
ui.alert(draftsCreated + '件の下書きが作成されました。');
}
スクリプトでは、下記の流れでGmailの下書きを作成しています。
スクリプトの解説が不要な方は、こちらから「Gmailの下書きを一括送信するスクリプト」に進んでください。
1. UIオブジェクト取得
3行目SpreadsheetApp.getUi()
でスプレッドシートのユーザーインターフェースにアクセスするためのオブジェクトを取得します。
ここでは、スプレッドシートにダイアログを表示するために、UIオブジェクトを取得しています。
2. 確認ダイアログ表示
6行目ui.alert()
でユーザに下書き作成の確認を求めるダイアログを表示します。
ユーザが「いいえ」を選択した場合は、13行目のif文でキャンセルのダイアログが表示され、処理が中止されます。
3. シートデータの取得
19行目SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
でアクティブなシートを取得し、
21行目getDataRange()
でアクティブなシートからデータ範囲を取得します。
そして、23行目getValues()
で値を2次元配列として格納します。
4. 変数初期化
25行目var draftsCreated = 0
で作成した下書きの数をカウントする変数を初期化します。
5. データ処理ループ
28行目for (var i = 1; i < data.length; i++) {}
でヘッダーを除くシートの各行に対して処理を実行します。
1から開始されているため、ヘッダー行はスキップされます。
ループ処理の中では30~32行目のvar recipient = row[1];
var subject = row[2];
var body = row[3];
で、各行から宛先(B列) 、件名(C列)、本文(D列)のデータを抽出します。
データを抽出する列を変更する場合は、row[]
のインデックスを変更してください。
そして、35行目GmailApp.createDraft()
でGmailAppを使用して、抽出したデータを基に下書きを作成します。
最後に、36行目draftsCreated++;
で、下書きが作成されるたびに下書き件数のカウンターを増やします。
6. 結果通知
ループ処理を抜けたら、40行目ui.alert(draftsCreated + '件の下書きが作成されました。');
により作成された下書きの総数をユーザーに通知します。
実行ボタン作成・実行
処理の実行は、GASのスクリプトエディタからも可能ですが、今回はGoogleスプレッドシートに実行ボタンを配置していきます。
実行ボタンを配置することで、GASのスクリプトエディタを直接操作せずに、簡単かつ直感的に処理を実行できるようになります。
1. 実行ボタン作成:図形描画
メニューバーの「挿入」を左クリックし、「図形描画」を選択します。
図形描画画面が開くので、メニューバーの「図形」から「ベベル(面取り)」を選択します。
2. 実行ボタン作成:ボタン用図形の調整
任意の大きさで図形を挿入し、色やテキストを編集して「保存して閉じる」で完了します。
サンプルでは「下書き一括作成」とテキスト入力しています。
3. 実行ボタン作成:スクリプト割り当て
挿入した図形の右上の縦3点マークを左クリックし、「スクリプトを割り当て」を選択します。
スクリプト割り当ての入力画面が開くので、下書き一括作成の関数「createDrafts」を入力し、確定します。
4. スクリプト実行
作成した「下書き一括作成」ボタンを左クリックして、スクリプトを実行します。
初めて実行する際には、スクリプトに対する権限の承認が求められる場合がありますので、承認してください。
「このアプリは Google で確認されていません」と表示された場合は左下の詳細をクリックすると、「無題のプロジェクト(安全ではないページ)に移動」というリンクが表示されます。
このリンクをクリックすると次のページへ遷移できます。
5. 確認ダイアログ表示
下書き作成の確認を求めるダイアログが表示されるので、「OK」を左クリックします。
「OK」をクリックすると、下書き作成の処理が実行されます。
6. 実行結果確認
正常にスクリプトが実行されると、「〇件の下書きが作成されました。」とダイアログが表示されます。
最後に、Gmailを開いて、下書きが作成されていることを確認します。
スプレッドシートに記載したデータで、下書きが一括作成されていることを確認できます。
Google スプレッドシートとGoogle Apps Script(GAS)を使用して、複数宛先にGmailを一括送信する方法は以下の記事で紹介しています。
本記事の続きとして、本記事で作成した下書きを一括送信する手順を紹介しています。
まとめ
GASを活用することで、Googleスプレッドシートに入力したデータから自動でGmailの下書きを作成することができます。
大量のメールを処理する際や、定型文を使ったメール作成作業を効率化したい場合に非常に便利です。
ぜひ、ご自身のスプレッドシートでも試してみてください。
ご自分での自動化が難しい場合は、クラウドソーシングサービスで専門知識を持つフリーランスに相談してみるのもおすすめです。
コメント