前提・実現したいこと
グーグルフォームを回答したら、回答先のスプレッドシートの指定したセルにアカウントメールアドレスを貼り付けたいです。
(↑ここまで出来ました。)
また、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); }
すみませんがご教授のほどお願い致します。
発生している問題・エラーメッセージとしてやりたいことがかかれてますが、何が問題・エラーなのですか?
ご指摘有難う御座います。内容を修正しました。エラーはでておりません。問題はフォーム送信時にトリガーをセットしても発動しないことです。
ためしにやってみたら、おそらく質問者さんが意図している通りの動きをしました(最終行のB列にメールアドレスが入りました)。自分でフォームに回答してみて、直後にスクリプトエディタの「表示」メニューから実行トランスクリプトを見ると、どこで止まっているか分かるかもしれません。
ご回答有難う御座います。確認し、フォームを回答したら最終行のB列にメールアドレスが入りました。ですが、別アカウントでフォームを回答してもその別アカウントのメールアドレスではなく作成者のメールアドレスが貼付けられてしまいました。ネットで調べて同じようなことで悩んでる方もいらっしゃったのですが解決方法が書いておりませんでしたので、もし宜しければご教授頂けませんでしょうか・・・泣
var usr = Session.getActiveUser(); var email = usr.getEmail(); に修正してもAのアカウントメールアドレスが貼り付けられてしまいました・・。頼りぱなしですみません・・。
えーっと、↑のは前回の「同じようなことで悩んでいる」の事例を探すためのメモなので(今着手できないのでメモ)。getEmailしてもAさんになると思います。
G Suite(ビジネス向け・社内のユーザ情報の収集)でしょうか。それとも一般ユーザ向けでしょうか。
papinianusさん そうだったんですね・・!ひとりで突っ走ってしまいました。失礼しました。
macaron_aimiさん 社内のユーザ情報の収集になります。
何を実現したいのかイマイチ把握できていないのですが、フォームの設定で、「メールアドレスを収集する」にチェックをいれておけば、回答にユーザのアドレスが入りませんか?それではダメなのでしょうか?
macaron_aimiさん 社内ツールになるので、使用頻度が多いため少しでも手順を減らせるものがあればと思い、回答者情報は必須なので自動が良いと思いました。
G Suiteでしたら、自動的に(メールアドレスを入力せずに)ログインメールアドレスが取得されます。
macaron_aimiさん 情報を教えて頂き有難う御座います。確認させて頂きます!
解決していませんか?
macaron_aimiさん G Suiteを調べたのですが、無料の範囲内でできたらいいなと思ったので・・。せっかく情報いただいたのに恐縮です。

回答1件
あなたの回答
tips
プレビュー