function myFunction() {
const sheetId = 'ここにスプレッドシートIDを記入'; //スプレッドシートID
const thisSpreadSheet = SpreadsheetApp.openById(sheetId); //スプレッドシートを開く
const answerSheet = thisSpreadSheet.getSheetByName("フォームの回答 1"); //「フォームの回答1」シートを開く
const reportSheet = thisSpreadSheet.getSheetByName("服薬情報提供書"); //「服薬情報提供書」シートを開く
const reportSheetId = "ここにシートIDを記入"; //「服薬情報提供書」シートのシートID
const pharmacistMail ="ここにメールアドレスを記入"; //送信先のメールアドレス
const folder = DriveApp.getFolderById('ここに保存先のドライブIDを記入') //PDF保存先のフォルダID
const lastRow = answerSheet.getLastRow(); //回答の最終行を取得(最新の回答の行)
const lastRowData = answerSheet.getRange(lastRow,1,1,8).getValues(); //最終行の値を取得(最新の回答を取得)
const timeStamp = Utilities.formatDate(lastRowData[0][0],'JST','yyyy/MM/dd'); //タイムスタンプを年月日で取得
const patientName = lastRowData[0][1]; //患者氏名を取得
const patientMail = lastRowData[0][2]; //患者メールアドレスを取得
const patientTel = lastRowData[0][3]; //患者電話番号を取得
const patientClaim = lastRowData[0][4]; //患者の要望・質問を取得
const reportWill = lastRowData[0][5]; //医師への報告希望の有無を取得
const patientBirthDay = Utilities.formatDate(lastRowData[0][6],'JST','yyyy/MM/dd'); //患者の生年月日を取得
const patientSex = lastRowData[0][7]; //患者の性別を取得
//患者が医師への報告を希望する場合は、「服薬情報提供書」患者の情報を転機してPDF化して、薬剤師へメールします。
if(reportWill == '希望します'){
reportSheet.getRange(17,1).setValue("患者氏名 " + patientName +" 様");
reportSheet.getRange(18,1).setValue("電話番号 " + patientTel);
reportSheet.getRange(25,1).setValue(patientClaim + "\n" + timeStamp);
switch(patientSex){
case "男性":
reportSheet.getRange(17,2).setValue("性別:男性 生年月日:" + patientBirthDay);break;
case "女性":
reportSheet.getRange(17,2).setValue("性別:女性 生年月日:" + patientBirthDay);break;
case "回答しない":
reportSheet.getRange(17,2).setValue(" 生年月日:" + patientBirthDay);break;
default: break;
}
SpreadsheetApp.flush();
var url = 'https://docs.google.com/spreadsheets/d/SSID/export?'.replace('SSID', sheetId);
var opts = {
exportFormat: 'pdf',
format: 'pdf',
size: 'A4',
portrait: 'true',
fitw: 'true',
sheetnames: 'false',
printtitle: 'false',
pagenumbers: 'false',
gridlines: 'false', // 忘れがちですがここをfalseにしないと薄い罫線が入ってしまいます。
fzr: 'false',
gid: reportSheetId
};
var url_ext = [];
for( optName in opts ){
url_ext.push( optName + '=' + opts[optName] );
}
var options = url_ext.join('&');
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url + options, {
headers: {
'Authorization': 'Bearer ' + token
}
});
var blob = response.getBlob().setName(timeStamp+patientName+'様情報提供書.pdf');
folder.createFile(blob);
GmailApp.sendEmail(
pharmacistMail,
'報告希望の情報が出されました',//件名です。
'添付ファイルをご確認下さい。このメールは自動送信です。', //本文になります。
{attachments: [blob]}
);
}else{
GmailApp.sendEmail(
pharmacistMail,
'患者様より情報が寄せられました',//件名です。
'回答をご確認ください。', //本文になります。
);
}
}
More than 1 year has passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme