Learn or Die

生涯勉強。Macです。

GASを使って日報提出を自動化する

私の会社は業後、日報(PDF)をメールで上司に送るのですが、使用しているのがGmailなのでGASを用いて自動化できないかと試みました。
今回はボタン(図形)をクリックすると処理が実行されるように作りました。

手順

  1. Googleドライブに「日報」フォルダを作成
  2. 作成したフォルダにPDFを入れる
  3. 任意の場所にスプレッドシート(GAS記述用)を作成
  4. シートにボタン(図形)を作成
    f:id:tech1313:20200223170743p:plain:w350:h200
  5. スクリプトエディタにコード記述
  6. ボタンにファンクションを割り当てる
  7. あとはボタン押すだけ!

実際のコード

function sendNippoMail() {
  //メッセージボックス表示
  var test = Browser.msgBox("日報を提出しますか?", Browser.Buttons.OK_CANCEL);
    if (test == 'ok') {
      //本文
      var subject = '日報提出'; 
      var body = '';
      body += '各位\n';
      body += '\n';
      body += 'お疲れ様です。\n';
      body += '日報ファイルを添付させていただきましたので、\n';
      body += 'ご査収のほど、よろしくお願い致します。\n';
      body += '――――――――――――――――――――――――――――――\n';
      body += '株式会社〇〇 \n';
      body += 'テスト 花子 \n';
      body += '〒000-0000 東京都〇〇区○○ 〇〇ビル\n';
      body += 'TEL:00-0000-0000 / FAX:00-0000-0000\n';
      body += '――――――――――――――――――――――――――――――\n';

      //添付ファイルの保存先フォルダID
      //作成した日報フォルダのURLの/folders/以降がIDです
      var folder = DriveApp.getFolderById(' [フォルダID] '); 
      var files = folder.getFiles();
      var attachments = [];
      //フォルダ内のファイルを配列に入れる
      while (files.hasNext()) {
        attachments.push(files.next());    
      }

      //送信処理
      //attachments[0]はフォルダ内の最新ファイルを指します。           
      GmailApp.sendEmail(
        'test1@test.co.jp,test2@test.co.jp',
        subject,
        body, 
        {attachments: attachments[0]}
      );
    }   
}