-文系卒のあっきょが残業を1時間も減らせた理由とは?-
プログラミングを学んで業務自動化アプリを自作すれば、残業時間を圧倒的に減らせます。
事務職や営業職などの非エンジニアでも、リスキリングで業務の負担を減らしています。
プログラミングスクールなら、仕事終わりの夜遅くにオンラインで自宅学習。
しかも、厚生労働省の教育訓練給付金制度を使えば受講料が最大70%OFFとお得。
プログラミングスクールはこんな社会人におすすめです。
- リスキリングで基礎からプログラミングを学びたい人
- 日常業務を自動化して残業時間を減らしたい人
- 転職や副業で有利なスキルを身につけたい人
- 独学で挫折した経験がある人
おかげで平日でも趣味の時間を取れたッス!
文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!
複数の相手に同じ内容のメールを一斉送信するのは残業の原因になりますよね。
しかし、GASを使えば1クリックでメールを送信が可能。
この記事ではコピペOKのGoogle Apps Scriptのコードで解決します。
この記事はこんな人におすすめ!
- 1クリックで大量のメールを一斉送信したい
- メールに費やす時間を減らして毎日の残業から解放されたい
- プログラミングでJavaScriptを学んだけど何を作っていいかわからない
誰でも無料で簡単にできるので気軽に学んでいきましょう!
メールを一斉巣送信するアプリのイメージ
1クリックでスプレッドシートに登録したメールアドレスに一斉送信するアプリを作成します。
例えば、あなたが取引先全員にメールを送信するなら莫大な時間と労力が必要。
また、本文のはじめに「〇〇様」と1つずつ書き換えるのでミスの原因にもなります。
GASならすべてのメールアドレスに「○○様」付きで自動送信できます。
コード次第であなた好みにメール本文を送れるッスよ!
メールを一斉送信する準備
Google Apps Script でメールを一括で大量に送信する準備。
ファイルは2つ必要です。
必要なファイル
- Google ドキュメント…送信するメール本文の作成
- Google スプレッドシート…顧客データの保存 & GASのプログラムの実行
Google ドキュメントの設定
Google ドキュメントにメールの本文になる文章を記入します。
文章内の {customer} には、後に作成する「リスト」シートの「姓」と「名」を合わせた名前が入ります。
Google ドキュメントの編集は以上です。
Google スプレッドシートの設定
メールアドレスを含めた顧客データのスプシを作成していきます。
今回は以下の3つを1行目に記入していきます。
- 姓
- 名
- メールアドレス
2行目からそれぞれの顧客データを登録します。
送信テストするのでメールアドレスは自身のメールアドレスに書き換えましょう。
「シート1」を右クリックして名前を変更。
顧客データのワークシートなので「リスト」と名付けます。
Google スプレッドシートの編集は以上です。
サンプルコードを貼り付ける方法
サンプルコードはGoogle スプレッドシートにコピペ。
上バーの「拡張機能」の中にある「Apps Script」をクリックしてコードを貼り付けます。
メールを一斉送信するサンプルコード
Gメールの一斉送信するサンプルコードの公開とコードの説明をしていきます。
解説の項目
- サンプルコード
- A, メールに送信する内容を設定
- B, 使用するスプレッドシートの定義
- C, 処理するスプレッドシートのセル番号の定義
- D, Google ドキュメントからメール本文を取得
- E, 顧客ごとにメールを送信
サンプルコード
右上にあるマークを押すとコードのコピペを一瞬でできます。
また、コード内で文頭にアルファベットが付いているコメントごとに詳細を説明していきます。
function sendMail() {
//A.メールに送信する内容を設定
const DOC_URL = 'Google ドキュメントのURL';
const senderName = '送り主の名前';
const subject = 'メールのタイトル';
//B.使用するスプレッドシートの定義
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const listSheet = spreadSheet.getSheetByName('リスト');
//C.処理するスプレッドシートのセル番号の定義
const LAST_NAME_COL = 1; //苗字の列番号
const FIRST_NAME_COL = 2; //名前の列番号
const MAIL_ADDRESS_COL = 3; //メールアドレスの列番号
const START_ROW = 2; //for構文で読み込み始める最初の行番号
const listLastRow = listSheet.getLastRow();
//D.Google ドキュメントからメール本文を取得
const openDoc = DocumentApp.openByUrl(DOC_URL);
let wholeText = openDoc.getBody().getText();
//E.顧客ごとにメールを送信
for (var a=START_ROW; a<=listLastRow; a++){
const recipient = listSheet.getRange(a,MAIL_ADDRESS_COL).getValue(); //メールアドレスを取得
const options = {name: senderName, from: sendMailFrom}; //「姓」と「名」を取得して、名前を作成
const customerName = listSheet.getRange(a,LAST_NAME_COL).getValue()+ " " +listSheet.getRange(a,FIRST_NAME_COL).getValue();
let body = wholeText.replace("{customer}", customerName);
MailApp.sendEmail(recipient, subject, body, options);
}
}
A, メールに送信する内容を設定
//A.メールに送信する内容を設定
const DOC_URL = 'メールの本文になる Google ドキュメントのURL';
const senderName = '送り主の名前';
const subject = 'メールのタイトル';
メールに送信する内容を定義します。
3つの定数の「’ ‘」の中を全て書き換えますが、定数DOC_URL はGoogleドキュメントのURLに書き換え。
Google ドキュメントのURLの取得方法は次に説明します。
Google ドキュメントのURLの取得の方法
まず、メールの本文を記入した Google ドキュメントが保存されている場所まで移動。
ドキュメントにカーソルを合わせて右クリックし、「リンクを取得」を選択。
右側に「リンクをコピー」をクリックすると自動でコピー。
コピーしたリンクを定数DOC_URLに上書きします。
B, 使用するスプレッドシートの定義
//B.使用するスプレッドシートの定義
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const listSheet = spreadSheet.getSheetByName('リスト');
編集するGoogle スプレッドシートを指定します。
定数spreadSheetは現在アクティブな状態のスプシを取得し、定数listSheetで名前が「リスト」のシートを取得します。
C, 処理するスプレッドシートのセル番号の定義
//C.処理するスプレッドシートのセル番号の定義
const LAST_NAME_COL = 1; //苗字の列番号
const FIRST_NAME_COL = 2; //名前の列番号
const MAIL_ADDRESS_COL = 3; //メールアドレスの列番号
const START_ROW = 2; //for構文で読み込み始める最初の行番号
const listLastRow = listSheet.getLastRow();
「リスト」シートのセル番号をそれぞれ取得。
定数listLastRowはセルに値が埋まっている最後の行番号を取得します。
getLastRowメソッドの詳細は以下の記事をご参考ください。
D, Google ドキュメントからメール本文を取得
//D.Google ドキュメントからメール本文を取得
const openDoc = DocumentApp.openByUrl(DOC_URL);
var wholeText = openDoc.getBody().getText();
メールの本文を記入したGoogle ドキュメントのURLを取得します。
また、ドキュメント内の文章をgetTextメソッドで読み込みます。
E, 顧客ごとにメールを送信
//E.顧客ごとにメールを送信
for (var a=START_ROW; a<=listLastRow; a++){
const recipient = listSheet.getRange(a,MAIL_ADDRESS_COL).getValue(); //メールアドレスを取得
const options = {name: senderName, from: sendMailFrom}; //「姓」と「名」を取得して、名前を作成
const customerName = listSheet.getRange(a,LAST_NAME_COL).getValue()+ " " +listSheet.getRange(a,FIRST_NAME_COL).getValue();
var body = wholeText.replace("{customer}", customerName);
MailApp.sendEmail(recipient, subject, body, options);
}
「リスト」シートに登録した顧客の数だけメールを1件ずつ送信します。
定数costomerNameにはフルネーム(姓 + 名)を代入し、ドキュメント内の {costomer} にreplaceメソッドで上書します。
不備がない場合、MailAppクラスでメールを送信して完了です。
このクラスの詳細は以下の記事をご参考に。
コードの説明は以上です。
メールを一斉送信するテスト
実際に、GASで作成したメールの一括送信をテストしていきましょう。
Apps Scriptの上バーの文字が「sendMail」になっていたら「実行」を押します。
「このアプリはGoogleで確認されていません」と表示した場合はこちら。
メールが届いてドキュメントの {custom} が書き換わったことも確認できます。
メールが届かない場合は、アドレスの打ち間違いが考えられるのでご確認ください。
まとめ | GASを挫折しないで学ぶには
以上、Google Apps Script を使ったメールの一斉送信を自動化する方法でした。
そのままコピペしたり、プログラミングの練習や動作確認用に使ったりしてみましょう。
文系未経験の社会人でも、GASを効率的に学ぶならプログラミングスクールがおすすめ。
現役エンジニアの講師のもとで学びながら、途中で挫折せず確実にスキルが身につきます。
次回の記事もご期待ください!
それでは、よいプログラミングライフを!