【GAS】Googleスプレッドシートからメールを送信するボタンを作った

こんにちは!

アキです~

前回、業務改善のために週報をExcelからGoogleスプレッドシートに変更しました

今回はさらに手を加えて、Google Apps Scriptを使って、

スプレッドシートから、週報を提出するメールをボタン一つで送れるようにしました。

メール送信のGAS

週報は毎週月曜にメールで会社に提出してます。

今回はメールを送るGASを作りました。

メールの内容はこんな感じです(実際に送ったもの)

mail_image

上記のメールを送るためのGASはこちら(キレイなものではないですが)

function send_syuho() {
var emailAddress = ['送り先その①', '送り先その②','送り先その③'];
var sheet = SpreadsheetApp.getActiveSheet();
var subject = sheet.getName() + '_週報提出(名前)';
var body = '各位\r\n\r\nお疲れ様です。\r\n名前です。\r\n\r\n';
body += sheet.getName() + '分の週報を提出致します。\r\nよろしくお願いいたします。';
body += '\r\n\r\n\r\n';

var ss = SpreadsheetApp.getActiveSpreadsheet();

var url = ss.getUrl();

body += url;

GmailApp.sendEmail(emailAddress, subject, body);

}

あまり特筆するものはないですが、

GmailApp.sendEmail()メソッドでメールを送ってます。

送り先やメールの件名・文面はソースコードに直書きですw

週報はスプレッドシートのURLをgetUrl()で取得して貼り付けています。

あと関数はsheet.getName()でシート名(年月日)を取得しているくらいです。

参考

https://qiita.com/rf_p/items/ecce989c632ddf11fc96

スプレッドシートにボタンを作る

次にスプレッドシートからメールを送るためのボタンを作りました。

週報ボタン

上記のボタンを作るためのGASがこちら

function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('週報送信');
menu.addItem('週報送信', 'send_syuho'); //ここでメール送信スクリプト呼び出し
menu.addToUi();
}

これで、スプレッドシートのメニュー上に「週報送信」ボタンができます。

少しだけ開設すると、

createMenu()やaddItem()はメニューを追加するメソッドです。

createMenu()からは先ほど作成したメール送信スクリプトを呼び出してます。

onOpen()はスプレッドシートを開いたときに何らかのアクションをしてくれるメソッドです。

なのでこのGASは、

「このスプレッドシート開いたら週報送信っていうボタンを作るよ」

というアクションをしてくれてます。

詳しくは参考先URLを見てくださいw

参考

https://tonari-it.com/gas-spreadsheet-addmenu-onopen/

https://qiita.com/howdy39/items/46ca1f2fd9d27eaba0c3

ただし・・・

残念なことにスマホからは動きませんでした。。。

スマホからGASが動かない事象については、公式マニュアルにもちゃんと書かれれていないと、ネットでウワサがありましたが、今はどうなっているのでしょう・・・

そもそもGoogleスプレッドシートで週報を作った目的は

「スマホから週報を提出したい!」

だったので、これでは目的が果たせません。。。

さらに改善していきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする