🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

1229閲覧

GASのスクリプトについて質問

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2020/11/22 11:29

編集2020/11/22 11:33

以下メールを送るスクリプトを作成してmainは問題なく動きます。これにPDFの容量を追加して、50KB以上はメールを送るスクリプトをPDFを作成したのですが、うまく動作しますせん。添削していただけないでしょうか。よろしくお願いします。

上下の部分で以下の部分のみを追記したましたが、エラーも何もでず、結果もえられませんでした。

diff

1var values = sheet.getRange(2, 3, sheet.getLastRow() - 1, 6).getValues(); // メールアドレスと企業名の一覧を取得 2let targets = sheet.getRange(2, 3, sheet.getLastRow() - 1, 5).getValues() 3var value = {}; // 本文の「%企業名%」を企業名に置き換えてメールを送信 4var count = values.length; 5for(var i=0 ;i <= count-1 ; i++) 6{ 7value[i] = values[i] 8if(value[i] >= 50000) 9{ 10let targets = sheet.getRange(2, 3, i, 5).getValues() 11

main

1function sendAllMail00() { 2 // このスクリプトの実行日の取得 3 var today = Utilities.formatDate(new Date(), 'Asia/Tokyo','yyyy/MM/dd');; // 今日の日付をyyyy/mm/dd形式に直して取得 4 5 // spreadSheetオブジェクトを取得 6 let spreadSheet = SpreadsheetApp.getActive() 7 8 // 件名と本文が書かれたsheetオブジェクトを取得 9 let templateSheet = spreadSheet.getSheetByName("データ項目") 10 11 // 件名はD2セルに入ってるのでその値を取得 12 let title = templateSheet.getRange("D2").getValue() 13 14 // 送信対象のメールアドレス一覧が記載されてるシートを取得 15 let sheet = spreadSheet.getSheetByName("回答") 16 // メールアドレスと企業名の一覧を取得 17 let targets = sheet.getRange(2, 3, sheet.getLastRow() - 1, 5).getValues() 18 // 本文の「%企業名%」を企業名に置き換えてメールを送信 19 for (target of targets) { 20 try { 21 var fileurls = target[4].split('/'); 22 var fileid = fileurls[5]; 23 var file = DriveApp.getFileById(fileid);//添付ファイル取得 24 // 本文はB2セルに入ってるのでその値を取得 25 let body = templateSheet.getRange("E2").getValue() 26 body = body.replace(/%名前%/, target[0]) 27 28 // スプレッドシートのメアド、件名・本文でメールを送信 29 GmailApp.sendEmail(target[1], title, body, {attachments: [file]}); 30 } 31 catch (e) { 32 continue; 33 } 34 } 35 } 36

PDF

1function sendAllMail00() { 2 // このスクリプトの実行日の取得 3 var today = Utilities.formatDate(new Date(), 'Asia/Tokyo','yyyy/MM/dd');; // 今日の日付をyyyy/mm/dd形式に直して取得 4 5 // spreadSheetオブジェクトを取得 6 let spreadSheet = SpreadsheetApp.getActive() 7 8 // 件名と本文が書かれたsheetオブジェクトを取得 9 let templateSheet = spreadSheet.getSheetByName("データ項目") 10 11 // 件名はD2セルに入ってるのでその値を取得 12 let title = templateSheet.getRange("D2").getValue() 13 14 // 送信対象のメールアドレス一覧が記載されてるシートを取得 15 let sheet = spreadSheet.getSheetByName("回答") 16 var values = sheet.getRange(2, 3, sheet.getLastRow() - 1, 6).getValues(); 17 var value = {}; 18 var count = values.length; 19 for(var i=0 ;i <= count-1 ; i++) 20 { 21 value[i] = values[i] 22 if(value[i] >= 50000) 23 { 24 let targets = sheet.getRange(2, 3, i, 5).getValues() 25 for (target of targets) { 26 try { 27 var fileurls = target[4].split('/'); 28 var fileid = fileurls[5]; 29 var file = DriveApp.getFileById(fileid);//添付ファイル取得 30 // 本文はB2セルに入ってるのでその値を取得 31 let body = templateSheet.getRange("E2").getValue() 32 body = body.replace(/%名前%/, target[0]) 33 34・・・以降同じ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/11/22 12:17

うまく動作しないというのは、どういうふうに動作するんでしょうか
退会済みユーザー

退会済みユーザー

2020/11/22 12:43

エラーもでず、メールも送られません。
guest

回答1

0

ベストアンサー

【pdfサイズの取得について】
pdfサイズはH列に入っていると想像しますが、取得できていません。
valuesの構造は下の通りなのでvalue[i]=values[i]は列の配列をコピーしています。
value[i]=values[i][5]とすべきかと思います。

values=[
[C2,D2,E2,...]
[C3,D3,E3,...] ← H3ならvalues[1]ではなくvalues[1][5]
[C4,D4,E4,...]
]

適宜修正し解決しました。

投稿2020/11/22 13:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問