実現したいこと
GAS初心者です。
「スプレッドシートの指定した範囲のPDFの作成し、メールに添付をしてメールを自動送信する」コードを書きたいと思っておりますが、実行できず困っています。
解決方法がわかる方がいらっしゃいましたら教えていただけますと幸いです。
実現したいことは下記の通りです。
・スプレッドシートのシート名は特定しない。
(スプレッドシート内にボタンを作り、ボタンを押せばスクリプトが実行される仕組みにしたい)
・スプレッドシートの指定した範囲のPDFの作成し、メールに添付をしてメールを自動送信したい。
・メールの宛先、Cc、件名、本文は、スプレッドシートに記載してそこから情報を取得したい。
発生している問題・分からないこと
下のようなエラーメッセージ出ており、スクリプトを実行出来ません。
エラーメッセージ
error
1エラー 2Exception: The parameters (number[]) don't match the method signature for Utilities.newBlob. 3sendEmailWithAttachment @ 無題.gs:17
該当のソースコード
GAS
117行目 var pdf = Utilities.newBlob(values); 2 3念のためにコードの全文載せておきます。↓ 4function sendEmailWithAttachment() { 5 // スプレッドシートを取得 6 var sheet = SpreadsheetApp.getActiveSpreadsheet(); 7 8 // メールの宛先、Cc、件名、本文を取得 9 var to = sheet.getRange("AO39").getValue(); 10 var cc = sheet.getRange("AO47").getValue(); 11 var subject = sheet.getRange("AO55").getValue(); 12 var body = sheet.getRange("AO63").getValue(); 13 14 // 指定した範囲のPDFを作成 15 var startRow = 1; 16 var endRow = 88; 17 var startColumn = 1; 18 var endColumn = 38; 19 var values = sheet.getRange("A1:AL88").getValues(); 20 var pdf = Utilities.newBlob(values); 21 var pdfId = Utilities.parseBlob(pdf).getId(); 22 23 // メールを作成 24 var mail = GmailApp.createEmail(); 25 mail.setSubject(subject); 26 mail.setBody(body); 27 mail.addTo(to); 28 if (cc) { 29 mail.addCc(cc); 30 } 31 mail.addAttachment(pdfId); 32 mail.send(); 33}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
PDFのセル範囲の方法が間違っていると想定しており、セル範囲指定の入力を変更しても、「Exception: The parameters (String,number,number,number) don't match the method signature for SpreadsheetApp.Spreadsheet.getRange.」といったエラーが出るだけで実行出来ませんでした。
補足
特になし

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/01/18 04:08
2024/01/18 06:44