Gmailの下書きを手間なく複製!スプレッドシート×GASで作業効率アップ

「Gmailで作成した下書きを複製する機能があれば、もっと効率よくメール管理ができるのに…」と感じたことはありませんか?

残念ながら、Gmailには下書きを複製する機能がないため、毎回新しい下書きを作成し、手作業で内容をコピー&ペーストする必要があります。

これでは手間がかかり、作業効率も下がってしまいます。

そこで、解決策としてGoogle Apps Script(GAS) を活用すれば、下書きの複製を自動化できます。

この記事では、GASとスプレッドシートを使って、下書きを指定回数だけ簡単に複製する方法をご紹介します。

一度作成した下書きをテンプレートとして再利用できるようになり、日々の作業を効率化することが可能です。

目次

完成イメージ

スプレッドシート

Gmail下書き画面

  • スプレッドシートで複製する下書きメールを指定
    • A列: 件名(下書きを特定するためのキーワード)
    • B列: 複製したい数
  • スクリプト実行で下書きメールを複製

スクリプトを実行すると、Gmailに保存されている下書きが、指定した回数分だけ自動的に複製されます。

頻繁に使うテンプレートをコピーしたい時に便利です。

手順

STEP
Gmailの下書きを作成する

複製したいメール下書きを作成します。

  • 宛先(To), (Cc), (Bcc))
  • 件名
  • 本文

(メールの形式がHTML、プレーンテキストどちらでも複製できます。)

STEP
スプレッドシートの準備

A列: 下書きを特定するための件名キーワード(部分一致)

B列: 複製したい数

スプレッドシートに複製するメールの件名と複製数を入力します。

シート名は「メール下書き複製」としてスクリプト実行時に参照します。

必要に応じてシート名をご変更ください。

STEP
GASエディタを開く

Googleスプレッドシートを開き、メニューの「拡張機能」から「Apps Script」をクリックしてGASエディタを開きます。

STEP
GASスクリプトの作成

function myFunction(){

}

が最初から入っているため、消去して以下のスクリプトを貼り付けます。

function duplicateDraft() {
  const sheetName = "メール下書き複製"; // シート名を指定
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);

  if (!sheet) {
    Logger.log(`指定したシート「${sheetName}」が見つかりませんでした。`);
    return;
  }

  const data = sheet.getDataRange().getValues(); // データを取得

  for (let i = 1; i < data.length; i++) { // 1行目はヘッダーなのでスキップ
    const subjectKeyword = data[i][0]; // 件名
    const duplicateCount = data[i][1]; // 複製数
    if (!subjectKeyword || !duplicateCount) continue; // データが空ならスキップ

    // 件名で下書きを検索
    const templateQuery = `subject:"${subjectKeyword}" in:drafts`; // 件名で検索
    const threads = GmailApp.search(templateQuery);

    if (threads.length > 0) {
      const message = threads[0].getMessages()[0];
      const subject = message.getSubject();
      const htmlBody = message.getBody(); // HTML形式の本文を取得
      const plainBody = message.getPlainBody(); // テキスト形式の本文を取得
      const to = message.getTo(); // 宛先
      const cc = message.getCc(); // CC
      const bcc = message.getBcc(); // BCC

      const bodyToUse = htmlBody || plainBody;

      for (let j = 0; j < duplicateCount; j++) {
        if (htmlBody) {
          GmailApp.createDraft(to, subject, '', { htmlBody: bodyToUse, cc: cc, bcc: bcc });
        } else {
          GmailApp.createDraft(to, subject, bodyToUse, { cc: cc, bcc: bcc });
        }
      }
      Logger.log(`下書きを複製しました: ${subject} × ${duplicateCount}回`);
    } else {
      Logger.log(`件名「${subjectKeyword}」に一致する下書きが見つかりませんでした。`);
    }
  }
}
スクリプトの説明
STEP
スクリプトを保存

スクリプトを書いたら、名前を付けて保存します。

(例:「Gmail下書き複製」)

STEP
スクリプトを実行

スクリプトを実行して下書きメールを複製します。

初めてそのスクリプトを実行する場合は権限の確認が必要です。

そのため、『権限を確認』を押します。

許可の詳細手順

「詳細」をクリックします。

無題のプロジェクト(安全ではないページ)に移動」をクリックします。

許可」をクリックします。

STEP
下書きメールが複製される

宛先(Cc,Bcc含めて)がある場合は、元の下書きと同じように複製されます。

注意事項

同じ件名の下書きメールが複数ある場合

最初に見つかったメールを複製します。

Gmailの制限

下書きを大量に複製すると、GmailのAPI制限にかかる可能性があります。(1度に50通を超える場合は注意)

Gmailの制限についてはこちらをご確認ください。

まとめ

Gmailの下書きを効率的に複製する方法として、GoogleスプレッドシートとGASを活用する手順をご紹介しました。

さらに、GASを使えば、メール本文の一部分だけを動的に変更し、複数の宛先にカスタマイズしたメールを自動送信することも可能です。

その具体的な方法については、以下の記事をご覧ください。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。

GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。

また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。

貴方の業務改善を全力でサポートいたします。

お問い合わせはこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次