概要
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);
}