Gmailの下書きを手間なく複製!スプレッドシート×GASで作業効率アップ
「Gmailで作成した下書きを複製する機能があれば、もっと効率よくメール管理ができるのに…」と感じたことはありませんか?
残念ながら、Gmailには下書きを複製する機能がないため、毎回新しい下書きを作成し、手作業で内容をコピー&ペーストする必要があります。
これでは手間がかかり、作業効率も下がってしまいます。
そこで、解決策としてGoogle Apps Script(GAS) を活用すれば、下書きの複製を自動化できます。
この記事では、GASとスプレッドシートを使って、下書きを指定回数だけ簡単に複製する方法をご紹介します。
一度作成した下書きをテンプレートとして再利用できるようになり、日々の作業を効率化することが可能です。
完成イメージ
スプレッドシート
Gmail下書き画面
- スプレッドシートで複製する下書きメールを指定
- A列: 件名(下書きを特定するためのキーワード)
- B列: 複製したい数
- スクリプト実行で下書きメールを複製
スクリプトを実行すると、Gmailに保存されている下書きが、指定した回数分だけ自動的に複製されます。
頻繁に使うテンプレートをコピーしたい時に便利です。
手順
複製したいメール下書きを作成します。
- 宛先(To), (Cc), (Bcc))
- 件名
- 本文
(メールの形式がHTML、プレーンテキストどちらでも複製できます。)
A列: 下書きを特定するための件名キーワード(部分一致)
B列: 複製したい数
スプレッドシートに複製するメールの件名と複製数を入力します。
シート名は「メール下書き複製」としてスクリプト実行時に参照します。
必要に応じてシート名をご変更ください。
Googleスプレッドシートを開き、メニューの「拡張機能」から「Apps Script」をクリックして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}」に一致する下書きが見つかりませんでした。`);
}
}
}
スクリプトの説明
スクリプトを書いたら、名前を付けて保存します。
(例:「Gmail下書き複製」)
スクリプトを実行して下書きメールを複製します。
初めてそのスクリプトを実行する場合は権限の確認が必要です。
そのため、『権限を確認』を押します。
許可の詳細手順
「詳細」をクリックします。
「無題のプロジェクト(安全ではないページ)に移動」をクリックします。
「許可」をクリックします。
宛先(Cc,Bcc含めて)がある場合は、元の下書きと同じように複製されます。
注意事項
- 同じ件名の下書きメールが複数ある場合
-
最初に見つかったメールを複製します。
- Gmailの制限
-
下書きを大量に複製すると、GmailのAPI制限にかかる可能性があります。(1度に50通を超える場合は注意)
Gmailの制限についてはこちらをご確認ください。
まとめ
Gmailの下書きを効率的に複製する方法として、GoogleスプレッドシートとGASを活用する手順をご紹介しました。
さらに、GASを使えば、メール本文の一部分だけを動的に変更し、複数の宛先にカスタマイズしたメールを自動送信することも可能です。
その具体的な方法については、以下の記事をご覧ください。
弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。
GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。
また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。
貴方の業務改善を全力でサポートいたします。
コメント