フォームから送信するとPDFを作成しフォルダに保存、指定したメールアドレスと入力した本人のアドレスにPDFが送信されます
どうせならみかんボランティアが作らずに宇和島社協が作ればいいのに スプレッドシート共有しておけば役所の確認も楽だと思う。
スプレッドシート
上記URLをクリック、スプレッドシートが開いたら
メニューの「ファイル」-「コピーの作成」でファイル名を指定し保存
スプレッドシートが開くのでURLをコピー
https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/edit
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxは下のスクリプトで必要
フォルダ
Googleドライブからフォルダ作成 ※PDFを保存するフォルダを作成
フォルダを開きURLをコピー
https://drive.google.com/drive/folders/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyは下のスクリプトで必要
フォーム
名前を同じように作成してください
フォームのスクリプト
変更する箇所は3箇所
上でコピーしたIDを貼り付け
var ssid = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var folder = DriveApp.getFolderById("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy");
あとMailApp.sendEmail(["xxxxx@xxxxx.com", mail],
のxxxxx@xxxxx.comに社協のメールアドレスを入力
// FormApp.getActiveForm() function myFunction(event) { //今日の日付 var request_date = new Date(); // フォーム var res = event.response.getItemResponses(); var name_kanji; var name_furi; var postal_code; var address; var tel_num; var fax_num; var mail; var start_date; var end_date; var place; var content; for (var n in res) { var item = res[n]; var name = item.getItem().getTitle(); var value = item.getResponse(); switch (name) { case '氏名': name_kanji = value; break; case 'フリガナ': name_furi = value; break; case '郵便番号': postal_code = value; break; case '住所': address = value; break; case '電話番号': tel_num = value; break; case 'FAX番号': fax_num = value; break; case 'メールアドレス': mail = value; break; case '活動開始日': start_date = value; break; case '活動終了日': end_date = value; break; case '活動場所': place = value; break; case '活動内容': content = value; break; } } // スプレッドシートURLから抽出したIDを入力 var ssid = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; var ss = SpreadsheetApp.openById(ssid); var pdfss = ss.getSheetByName("証明書"); var sheetid = ss.getActiveSheet().getSheetId(); pdfss.getRange("F11").setValue(request_date); //依頼日 pdfss.getRange("F12").setValue(name_furi); //ふりがな pdfss.getRange("F13").setValue(name_kanji); //氏名 pdfss.getRange("G14").setValue(postal_code); //郵便番号 pdfss.getRange("F15").setValue(address); //住所 pdfss.getRange("G16").setValue(tel_num); //電話番号 pdfss.getRange("G17").setValue(fax_num); //FAX番号 pdfss.getRange("H18").setValue(mail); //メールアドレス pdfss.getRange("F19").setValue(start_date); //活動開始日 pdfss.getRange("F20").setValue(end_date); //活動終了日 pdfss.getRange("F21").setValue(place); //活動場所 pdfss.getRange("G25").setValue(content); //活動内容 SpreadsheetApp.flush(); // 以下PDF化のためのプログラムです。今回はA4サイズでPDF化するため、オプション設定も下記のようになります。 var url = "https://docs.google.com/spreadsheets/d/SSID/export?".replace("SSID", ssid); var url_ext = []; var opts = { format: "pdf", size: "A4", fzr: "false", portrait: "true", gridlines: "false", printtitle: "false", pagenumbers: "false", fitw: "true", sheetnames: "false", gid: sheetid }; // 上記のoptsのオプション名と値を「=」で繋げて配列url_extに格納 for (optName in opts) { url_ext.push(optName + "=" + opts[optName]); } // url_extの各要素を「&」で繋げる var options = url_ext.join("&"); Logger.log(options) try { // API使用のためのOAuth認証 var token = ScriptApp.getOAuthToken(); var response = UrlFetchApp.fetch(url + options, { headers: { "Authorization": "Bearer " + token } }); // ファイル名を作成「活動日時開始日_名前.pdf」 var fileName = start_date + "_" + name_kanji + ".pdf"; // Googleドライブでフォルダを作成してURLからIDを入力 var folder = DriveApp.getFolderById("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"); var fileBlob = response.getBlob().setName(fileName); folder.createFile(fileBlob); // メールアドレス(社協の受付アドレス) MailApp.sendEmail(["xxxxx@xxxxx.com", mail], "災害派遣等従事車両証明書発行 お願い", "みかんボランティアセンターより災害派遣等従事車両証明書発行に係るボランティア活動を行う予定であることを確認願います。", { attachments : [fileBlob] }); } catch (e) { Logger.log("ファイル生成に失敗しました" + e) } }