PR

【GAS】Gmailの下書き作成を効率化!スプレッドシートから複数宛先の下書きを一括作成する方法

【効率化】Google スプレッドシートとGASでGmailの複数宛先の下書きを一括作成する方法 GAS
記事内に広告が含まれています。

本記事では、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(金)に予定されている会議のリマインドです。

よろしくお願いいたします。”
gmailの下書き作成のサンプルデータの表

3.GASのスクリプトエディタを開く

メニューバーの「拡張機能」を左クリックし、「Apps Script」を選択します。

「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を開いて、下書きが作成されていることを確認します。

スプレッドシートに記載したデータで、下書きが一括作成されていることを確認できます。

Gmailで下書きが作成されたことを確認する

Google スプレッドシートとGoogle Apps Script(GAS)を使用して、複数宛先にGmailを一括送信する方法は以下の記事で紹介しています。

本記事の続きとして、本記事で作成した下書きを一括送信する手順を紹介しています。

まとめ

GASを活用することで、Googleスプレッドシートに入力したデータから自動でGmailの下書きを作成することができます。

大量のメールを処理する際や、定型文を使ったメール作成作業を効率化したい場合に非常に便利です。

ぜひ、ご自身のスプレッドシートでも試してみてください。


ご自分での自動化が難しい場合は、クラウドソーシングサービスで専門知識を持つフリーランスに相談してみるのもおすすめです。

コメント

タイトルとURLをコピーしました