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

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

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

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

Q&A

解決済

1回答

3084閲覧

GAS フォームを送信したら送信先のスプレッドシートの指定したセルにアカウント情報を貼り付けたい

JipvOvxMCyFrRX2

総合スコア18

Google Apps Script

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

0グッド

1クリップ

投稿2018/06/20 06:43

編集2018/06/25 01:59

前提・実現したいこと

グーグルフォームを回答したら、回答先のスプレッドシートの指定したセルにアカウントメールアドレスを貼り付けたいです。
(↑ここまで出来ました。)
また、AというアカウントからBというアカウントに切り替えたら、Bのメールアドレスを貼り付けられるようにしたいです。
(↑ここがどうしても作成者Aのメールアドレスになってしまいます。)

発生している問題

~事前準備~ ・下記のスクリプトを入力 ・トリガーを「スプレッドシートから」「フォーム送信時」に設定 ~手順~ 1、フォーム作成 2、回答先を選択 3、回答先のスプレッドシートのA列とB列の間に列を1つ追加 4、フォーム送信したら以下のスクリプトが発動し、A列の最終行をセレクト 5、1列右に移動しグーグルアカウントを貼付け ※アカウントを切り替えたら、切り替え後のメールアドレスを貼り付けたいです。。

該当のソースコード

function onFormSubmit(){  var bk = SpreadsheetApp.getActiveSpreadsheet();  var sh = bk.getActiveSheet(); var objUser = Session.getActiveUser();  var rng = sh.getRange('A1').activate(); var rngrow = sh.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).activate();  rngrow.activate(); rngrow.offset(0, 1).setValue(objUser); }

すみませんがご教授のほどお願い致します。

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

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

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

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

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

papinianus

2018/06/20 10:46

発生している問題・エラーメッセージとしてやりたいことがかかれてますが、何が問題・エラーなのですか?
JipvOvxMCyFrRX2

2018/06/21 00:04

ご指摘有難う御座います。内容を修正しました。エラーはでておりません。問題はフォーム送信時にトリガーをセットしても発動しないことです。
papinianus

2018/06/22 14:55

ためしにやってみたら、おそらく質問者さんが意図している通りの動きをしました(最終行のB列にメールアドレスが入りました)。自分でフォームに回答してみて、直後にスクリプトエディタの「表示」メニューから実行トランスクリプトを見ると、どこで止まっているか分かるかもしれません。
JipvOvxMCyFrRX2

2018/06/25 01:52

ご回答有難う御座います。確認し、フォームを回答したら最終行のB列にメールアドレスが入りました。ですが、別アカウントでフォームを回答してもその別アカウントのメールアドレスではなく作成者のメールアドレスが貼付けられてしまいました。ネットで調べて同じようなことで悩んでる方もいらっしゃったのですが解決方法が書いておりませんでしたので、もし宜しければご教授頂けませんでしょうか・・・泣
JipvOvxMCyFrRX2

2018/06/25 02:59

var usr = Session.getActiveUser(); var email = usr.getEmail(); に修正してもAのアカウントメールアドレスが貼り付けられてしまいました・・。頼りぱなしですみません・・。
papinianus

2018/06/25 03:24

えーっと、↑のは前回の「同じようなことで悩んでいる」の事例を探すためのメモなので(今着手できないのでメモ)。getEmailしてもAさんになると思います。
macaron_xxx

2018/06/25 07:12

G Suite(ビジネス向け・社内のユーザ情報の収集)でしょうか。それとも一般ユーザ向けでしょうか。
JipvOvxMCyFrRX2

2018/06/25 07:47

papinianusさん そうだったんですね・・!ひとりで突っ走ってしまいました。失礼しました。
JipvOvxMCyFrRX2

2018/06/25 07:48

macaron_aimiさん 社内のユーザ情報の収集になります。
macaron_xxx

2018/06/25 08:17

何を実現したいのかイマイチ把握できていないのですが、フォームの設定で、「メールアドレスを収集する」にチェックをいれておけば、回答にユーザのアドレスが入りませんか?それではダメなのでしょうか?
JipvOvxMCyFrRX2

2018/06/26 01:28

macaron_aimiさん 社内ツールになるので、使用頻度が多いため少しでも手順を減らせるものがあればと思い、回答者情報は必須なので自動が良いと思いました。
macaron_xxx

2018/06/26 02:00

G Suiteでしたら、自動的に(メールアドレスを入力せずに)ログインメールアドレスが取得されます。
JipvOvxMCyFrRX2

2018/06/27 02:28

macaron_aimiさん 情報を教えて頂き有難う御座います。確認させて頂きます!
macaron_xxx

2018/06/29 05:35

解決していませんか?
JipvOvxMCyFrRX2

2018/06/29 06:51

macaron_aimiさん G Suiteを調べたのですが、無料の範囲内でできたらいいなと思ったので・・。せっかく情報いただいたのに恐縮です。
guest

回答1

0

ベストアンサー

G Suiteでないならばできません。

なぜならば、Googleフォームでは、明示的にメールアドレスを入力する以外で
フォーム送信者を特定しないからです。
(Googleアカウントも必須でない)


同じフォームを使い回すような場合には以下の形で擬似的に入力を回避することが可能です。

  1. フォームの設問にメールアドレスを追加
  2. メニューより「事前に入力したURLを取得」を選択する
  3. フォームのメールアドレスを適当に入力して、URLを取得する

すると下記のようなURLを取得することが可能です。

URL

1https://docs.google.com/forms/d/e/xxxxxxxxxx/viewform?usp=pp_url&entry.0000000=xxx@xxx.co.jp

URLの末尾のメールアドレスを各々のメールアドレスに変更した上でアクセスしてもらうとメールアドレスが入力された状態で回答を開始することができます。

投稿2018/07/02 05:00

macaron_xxx

総合スコア3191

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

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

JipvOvxMCyFrRX2

2018/07/03 08:59

デフォルトでそのような機能があったのですね! 勉強不足で申し訳ありませんでした・・。 長い時間、一緒に考えてくださり、とても感謝いたします。 本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問