johanshoku
@johanshoku (彡 斉藤)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

GAS スプレットシートからメールタイトルを取得したい

お世話になります。スプレットシートのセルを&を使って結合した文字列を作成し、それをメールのタイトルに使えるようにとgetRangeを使って取得したのですが、実際に動かしてみると メールタイトルがRangeと出てきます。
どのようにすればよいのかご教授願います。

現在書いたものは以下の通りです。

var to = "メールアドレス";
var sheetName1 = spreadsheet.getSheetByName("シート8");
var subject = sheetName1.getRange('A2');
Logger.log(subject.getValues());

var body ="メール本文";

GmailApp.sendEmail(to,
subject,
body,

}

シート8のA2には、 A1とA3の文字列を&で結合させています。
例えばA1 ○○会社
   A3 xx様
セルA2=A1&A3
といった具合です。
宜しくお願いいたします。

0

2Answer

こんにちは。
結論としてはこうだと思います(実際に動かしていないので、動かなかったらすみません)

  var to = "メールアドレス";
  var sheetName1 = spreadsheet.getSheetByName("シート8");
- var subject = sheetName1.getRange('A2');
+ var subject = sheetName1.getRange('A2').getValue();
- Logger.log(subject.getValues());
+ Logger.log(subject);

ポイントは2個あって、

  1. subjectという変数はgetRangeした値、つまり文字列ではなく範囲オブジェクトが入っている。それをsendEmailのsubjectで渡しても当然文字列としては解釈されない
  2. getValues()は1セルではなく複数セルのRange指定時に主に使うものであって、値が配列で返ってくる。そのためそのまま文字列としては使えないので配列のキーを指定するか、getValue()で単一の値として取得する
0Like

Comments

  1. @johanshoku

    Questioner

    ありがとうございます。
    拝読いたします。
    大変失礼ながら、まだ試していおりませんので結果については後程ここにてご報告させて頂きます。
    重ね云々ありがとうございました。

  2. @johanshoku

    Questioner

    続けざまにすみません。
    成功しました。
    ありがとうございました。

Your answer might help someone💌