【GAS】スプレッドシートにメール送信ボタンを付ける方法

目次

    読了時間: 約5分

    基本的には自分用の備忘録です。
    ちらっと見かけて、役にたちそうな方は使ってやってください。
    いきなりスクリプトを書いてしまいますが、とりあえず以下のスクリプトを書く必要があります。
    説明は順番に。

    function sendacceptMail() {
    const recipient = 'XXXXXXXX@XXYYZZ.com'; //送信先のメールアドレス
    const subject = 'メールの件名です。'; //件名
    const recipientCompany = 'メールの宛先です。'; //送信先の会社名
    const recipientName = 'メール送信先の担当者名です。'; //送信先の担当者名
    var body = `${recipientCompany}
    ${recipientName}宛
    `
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      const value = ss.getRange("A2").getValue(); //セルの所在地
    body += value;
    body += '
    メール本文です。
    ';
      const url = ss.getUrl();
    body += url; //本文
    const options = { name: '送信者名です。(スプレッドシートの名前がいいと思います。)' };  //送信元の名称
    var popUp = Browser.msgBox("送信確認", "送信しますか?", Browser.Buttons.OK_CANCEL);
     if (popUp == 'ok') {
    GmailApp.sendEmail(recipient, subject, body, options);
    Browser.msgBox("送信しました");
    } else {
       Browser.msgBox("キャンセルしました");
    }
    }

    スプレッドシートを開きApps Scriptを立ち上げる

    メール送信ボタンを設置したいスプレッドシートを開き、Apps Scriptを立ち上げます。

    Scriptを書き込む

    上記functionをまるっとコピーして貼り付けます。
    貼り付けたコードの2行目以下、必要箇所を修正します。

    Script名をつける

    メール送信なので「send mail」とか?

    Scriptに名前を付けたら、デプロイしてしまいます。

    種類はウェブアプリで、実行ユーザー・アクセスできるユーザーは適当に選んでください。
    一応僕は自分のみにしてます。

    デプロイボタンを押すと、アカウントの承認が進み、安全でないアプリケーションへのアクセス許可を求められます。
    安全ではないアプリケーションへのアクセスを「許可する」としてそのまま進行し、デプロイを完了します。

    スプレッドシートにボタンを設置する

    角丸の四角とかがボタンぽくてよいです。

    配置したボタンにスクリプトを割り当てる

    ボタン右上の3点ポチをクリックすると「スクリプトを割り当て」のメニューが表示されるので、選択。

    割り当てるスクリプトを直接書き込むのですが、コードの1行目、function の横に書いた名前をコピペします。

    動作確認してみる

    ボタンを押してスクリプトが動作するか確認します。

    メールが指定のアドレスに届けば完了。

    非常に乱暴にざっくりとしたメモを残しましたが、僕は再びこのコードを書くことがあるのだろうか?
    自分で書くとしたら、何行目がどんな意味だったか覚えてないんだろうなぁ…

    この記事を書いた人

    新卒でイベント会社に就職。その後レストラン、不動産会社と転々として今はweb関連会社に在籍してます。二輪とダーツとお酒が好きな中年。週末は飼い犬のチワワとサイクリングに出かけます。