Google Apps Script でGmailを操作して一斉送信でメールを送る方法
最終更新日:2026年8月5日
この記事でわかること
はじめに、Google Apps Scriptとは?
GAS・Excel VBA・Pythonによる業務自動化 比較
| 比較項目 | Google Apps Script(GAS) | Excel VBA | Python |
|---|---|---|---|
| 実行環境 | Googleサーバー(ブラウザ不要) | Excelがインストールされた端末 | ローカルまたはサーバー |
| 連携サービス | Google全サービス(スプレッドシート/Gmail/カレンダー等) | Officeアプリ(Excel/Outlook等) | 各種ライブラリで幅広く対応 |
| 定期実行(トリガー) | 標準機能で設定可能(時間・イベントトリガー) | タスクスケジューラとの組合せが必要 | cronやschedulerを別途設定 |
| 学習コスト | 低〜中(JavaScriptベース) | 低〜中(VBAはMicrosoft独自) | 中〜高(汎用言語・ライブラリが多い) |
| 費用 | 無料(Googleアカウントがあれば) | Officeライセンス必要 | オープンソース・無料 |
Google Apps Scriptとは、Google社が提供するプログラミング言語のことです。
Google Apps Scriptというプログラミング言語を使い、同じくGoogle社が提供するGmailやGoogleスプレッドシート、Gドライブ、Googleドキュメントを操作することができます。Gmailや、Googleスプレッドシートを使ったことがある方には「Gmailやスプレッドシートは使ったことがあるけど、プログラミングと聞くとなんだか難しいそう」という印象を持たれるかもしれませんが、コツさえつかんでしまえば意外と簡単で、今まで手間だった仕事をボタンをクリックするだけに簡略化し、効率化することもできるのです。
Google Apps Scriptでは何が出来るか?
Google Apps Scriptで出来ることの代表例は下記の通りです。
・カスタムのメニュー、ダイアログ、サイドバーを Google ドキュメント、スプレッドシート、フォームに追加する。
・Google スプレッドシート用のカスタム関数を作成する。
・ウェブアプリを公開する(スタンドアロンまたは Google サイトへの埋め込み)。
・AdSense、アナリティクス、カレンダー、ドライブ、Gmail、マップなど、他の Google サービスと連携する。
・Google ドキュメント、スプレッドシート、スライド、フォームを拡張するアドオンを作成して、アドオンストアで公開する。
上記以外にもさまざまな用途がございますが、今回は、Googleスプレッドシートを用いて、複数のメールアドレスに一括でメールを送信する方法をご紹介いたします。
※あらかじめGoogle Apps Scriptの基本的な使い方を熟知されてからの閲覧をお勧めいたします。
スプレッドシートに入力した複数のメールアドレスに対して一括でメールを送信する方法について
まずはスプレッドシートを開き、シートに複数の送付先の名前とメールアドレス、メッセージ内容を記入します。

※列は任意で減らしても増やしても問題ありませんが、送付先のメールアドレスは必須です。
※メールアドレスのドメイン名が「gmail.com」となっていますが、Gmail以外のドメイン名のアドレスにも送れます。
次に、メニューの「ツール」から「スクリプト エディタ」を開きましょう。
「スクリプト エディタ」を開くと、「コード.gas」が開いていますので、そこに下記のコードを入力してください。

function mailTest(){
var a = SpreadsheetApp.getActiveSpreadsheet();
a.setActiveSheet(a.getSheetByName(“sheet2”));
var b = SpreadsheetApp.getActiveSheet();
var c = b.getRange(“A2:C5”);
var d = c.getValues();
for(i in d){
var h = d[i];
var toName = h[0];
var toAddress = h[1];
var message = h[2];
var mainMessage = toName+’さん\n\nこんにちは。\n’+message;
var subjest= toName+’さん宛てのテストメールのタイトルです。’;
MailApp.sendEmail(toAddress,subjest,mainMessage);
}
}
function onOpen(){
SpreadsheetApp.getUi().createMenu(“テスト”)
.addItem(“メールテスト”, “mailTest”)
.addToUi();
}
下記の内容の「getActiveSpreadsheet()」メソッドを使い、現在開いているスプレッドシートを取得します。
「getSheetByName(“sheet2”)」メソッドで、取得するスプレッドシートのシート名(今回はシート名を「sheet2」としましたので、シート名を別の名称にした場合は2つの「”」ダブルクォーテーションで囲まれた()内を変更します。
「b.getRange(“A2:C5”)」の2つの「”」ダブルクォーテーションで囲まれた()内のA2:C5はシート内のセルの範囲を指定します。こちらもセルの範囲を増やした場合は変更します。2行追加した場合は、「b.getRange(“A2:C7”)」のようにします。
var a = SpreadsheetApp.getActiveSpreadsheet();
a.setActiveSheet(a.getSheetByName(“sheet2”));
var b = SpreadsheetApp.getActiveSheet();
var c = b.getRange(“A2:C5”);
var d = c.getValues();
次に、拡張for文を使って繰り返し処理を行い、MailApp.sendEmail()メソッドでメールを送信します。
for(i in d){
var h = d[i];
var toName = h[0];
var toAddress = h[1];
var message = h[2];
var mainMessage = toName+’さん\n\nこんにちは。\n’+message;
var subjest= toName+’さん宛てのテストメールのタイトルです。’;
MailApp.sendEmail(toAddress,subjest,mainMessage);
}
最後に、onOpen()メソッドを使い、スプレッドシートのメニューから選べるようにメニューを増やします。
【要注意】旧来のaddMenu()は非推奨(Simple Triggers経由での利用も制限あり)のため、現行の標準的な実装方法であるgetUi().createMenu().addItem().addToUi()を使用します。
今回はメニューの名称を「テスト」としましたが、名称を変更したい場合は「SpreadsheetApp.getUi().createMenu(“テスト”)」の2つの「”」ダブルクォーテーションで囲まれた()内を別の名称に変更してください。
function onOpen(){
SpreadsheetApp.getUi().createMenu(“テスト”)
.addItem(“メールテスト”, “mailTest”)
.addToUi();
}
よくある質問
Google Apps Script(GAS)とは何ですか?
GASはGoogleが提供するJavaScriptベースのスクリプト言語です。スプレッドシート・Gmail・カレンダーなどGoogleサービスをプログラムで操作・自動化できます。ブラウザ上で動作し、追加インストール不要で利用できます。
GASはプログラミング初心者でも使えますか?
はい。JavaScriptの基礎知識があれば始められます。Googleのリファレンスや日本語の解説記事も豊富で、スプレッドシートのマクロ記録機能からスクリプトを自動生成することもできます。
まとめ
今回はあまり複雑では無いですが、活用の仕方によっては業務にもプライベートな行事にも役立つ、Googleスプレッドシートを使ったメールの一括送信についてご紹介致しました。今までは手動で行っていたメールの一括送信を、Google Apps Scriptを使って行ってみてはいかがでしょうか。
▼ アクロビジョンについて


