0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

《GAS》特定キーを含むファイル名の複数ファイルをメールに添付して送付

Posted at

概要

Google Apps Script、略してGAS。ガス、ギャスなど呼び方は一定してないようですが、私は「ガス」と言っています。JavaScriptでコーディングし、グーグルのサーバで実行されます。スプレッドシート、フォームなどのメニューから選択したり、ドライブから直接作成することもできます。最近は私が勤める会社のような中小企業でもVBAだけじゃなくGASも使うようになってきました。(GASもVBAもうちの会社で使ってるのは私だけですが…)
仕事で作ったGASのなかから、指定フォルダ内で今日の日付をキーとしてファイル名を検索し、該当する複数のファイルを一括してメールに添付して送付するコードを紹介します。キーの部分を変えるといろいろ応用ができるんじゃないかと思います。私はスプレッドシートに組みこんでトリガーで自動実行していますが、他にもいろいろな使い方が可能かと思います。

コード

function attachment_mail(){

// 添付ファイルの保存先のグーグルドライブのフォルダを指定
let folder = DriveApp.getFolderById("フォルダID");

// ★添付ファイルを抽出するキーとなる日付の作成
// ★今日の日付を《年.月.日》の形式で指定してます
// ★この部分を変えればいろんなファイル名の添付に対応できます
// ※余談:日付の「月」の部分MMは時間の「分」mmとかぶるため仕様で大文字表記となっています
let today = new Date();
let date = Utilities.formatDate(today, "JST", "yyyy.MM.dd");

// フォルダ内のファイル名を調べて今日の日付"yyyy.MM.dd"が入っていたら配列list_aに格納
let list_s = folder.getFiles();
let list_a = [];

  // 指定フォルダ内のすべてのファイルに対して繰り返し処理
  while(list_s.hasNext()){
    let file_a = list_s.next();
      // 抽出キー《年.月.日》を正規表現でファイル名に含まれるか調べる
      // キーが含まれていたらそのファイル名をリストに追加していく
      // ※特定の拡張子のみなどの条件があればここでIF文を追加します
      if(file_a.getName().match(new RegExp(date,"g"))){
        list_a.push(file_a);
      }else{}    
  }

// メール送付処理
let mail = メールアドレス;
let subject = "件名";
let body = "本文";

// オプションのattachmentsで作成したファイル名リストの配列を指定する
let options = { attachments: list_a };

// メール送付を実行
MailApp.sendEmail(mail,subject,body,options);
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?