質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

2回答

3095閲覧

【GAS】指定した行の情報でメールを作成したい

gruten666

総合スコア10

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2018/10/04 09:37

前提・実現したいこと

Googleフォームにて募集したお問い合わせに対して、個別返信のためのメールを作成したいです。

特定の行を選択→[実行]で、A列名前・B列メールアドレス・C列電話番号などが自動的に入力されたメールが完成するのが理想です。(一斉に作成されるのではなく、一つずつ個別に選択して作成したいです)

取得した値をメールに自動反映する方法は見つけたのですが、肝心の値を抜き出す方法がわからず途方にくれております。
何かよい方法をご存知の方がいらっしゃいましたら、お力添えをお願いしたく思います。よろしくお願いします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

選択した行ということでActiveRowなるものがあるのかな?と思いましたがエラー。
ActiveCellを基準に○個右の値を取得…という方法も試しましたが、うまく行きませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

papinianus

2018/10/04 09:51

「選択→実行」という部分ですが、右クリックから実行するつもりですか?どういう値で取得すれば質問者さんがメールを作れるかわからないのでメールを作る部分の予定コードをください
guest

回答2

0

もう質問者さんは消えてるかな。

考え方なんですが、例えばA列からC列を範囲選択した状態で、メニューの「マイツール」→「選択範囲でメール」を押すとメールが送られるというのはどうでしょう?

本文はもうちょっと文章をちゃんと作る必要あるでしょうけども。
(このままでは、ちゃんとA列から選択してないといけないので、選択範囲のrowをとってうんたらとかにかえたほうがいいのかもしれない。)

javascript

1// https://qiita.com/howdy39/items/46ca1f2fd9d27eaba0c3 2function onOpen() { 3 const ui = SpreadsheetApp.getUi(); // Uiクラスを取得する 4 const menu = ui.createMenu('マイツール'); // Uiクラスからメニューを作成する 5 menu.addItem('選択範囲でメール', 'menuMailer'); // メニューにアイテムを追加する 6 menu.addToUi(); // メニューをUiクラスに追加する 7} 8function menuMailer() { 9 const vals = SpreadsheetApp.getActiveRange().getValues(); 10 const maildat = vals[vals.length - 1]; 11 const sub = "件名"; 12 const nam = maildat[0]; //A列に名前 13 const adr = maildat[1]; //B列にメールアドレス 14 const phn = maildat[2]; //C列に電話 15 const bod = nam+"様\n電話番号は"+phn+"ですね"; 16 MailApp.sendEmail({to:adr,subject:sub, body:bod }); 17}

投稿2018/10/10 09:02

編集2018/10/10 09:04
papinianus

総合スコア12705

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

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

papinianus

2018/10/10 09:05

選択範囲のrowをとってうんたら、はmaaron_xxxさんの回答にあるんで、そっちを参考にしてください。参考にしたい方は。 私は、当初より、どうやって実行する気なの?、がとても気になっていて、その対策としてメニューを作ったらどないだろ、という提案です。
guest

0

選択したセル(単一セル)の行データを全て取得したいのであれば、下記のとおりです。

js

1var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 2var data = sheet.getRange(sheet.getActiveCell().getRowIndex(), 1, 1, sheet.getLastColumn()).getValues()[0];

dataに行のデータが1次元配列で取得されています。

投稿2018/10/05 00:34

macaron_xxx

総合スコア3191

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問