前回「Googleフォームの回答内容を他のスプレッドシートにも自動転記する方法」でsetValueのところで転記先の行が同じ値になる…というところで詰まってしまった続きです。
今回の内容をまとめた本はこちら!▼
おさらい
- フォームの回答があった時は「フォームの回答1」というシートにデータが自動的に入る。
- 「フォームの回答1」というシートに自動的にデータが入った時に、別のスプレッドシートの「回答の転記」というシートの「末尾行」に自動的にデータが入力される。
setValueで書き込み
s_name_to.getRange(lastRow_PlusOne, 1,1,s_name_from.getLastColumn()).setValue(data);
getRangeで転記先の(最終行+1行に、1列目から、 1行分、 転記元の列数分)転記元の最終行のデータをsetValue()で書き込みます。
??なぜか、1列目のデータが行の全てのセルに転記されてしまいます。
というところで前回は詰まりました…。
解決しました
これ…かなりシンプルな答えでした。
内容をまとめた本はこちら!▼
[rml_read_more]
そう。「S」があるかないか…だったようです。
setValueの場合は単一セル、setValuesの場合は複数セル。
そうだったんです。「s」を付けることで行の値が取得できたんですね…。考えてみれば、そういうことも考えられたのかもしれません。
ということで、setValuesに書き換えました。
setValues
ということで…実行。
転記されました!!(3回押したので3つ書き込まれています。笑)
これで、やりたいイメージの土台が出来ました!
あとは、「フォームに回答があった時に自動転記する」という動作のトリガーを仕掛けます。
トリガー
トリガーを設定します。
「+トリガーを追加」から、トリガーを作成できます。
実行する関数を設定します。
今回は「PostToAnotherFile」という関数を選択します。
イベントの種類
イベントの種類は、フォームに送信があったタイミングで自動転記したいので、「フォーム送信時」です。
「このアプリは確認されていません」
という表示が出た時は「詳細」を選択して、「XXXXXXXX(安全ではないページ)に移動」を選択します。
許可を与えるGoogleアカウントを選択します。
新しいトリガーが作成されました!!
テストする
フォーム送信してみます。
確認
転記元(フォーム送信の回答先シート)
別のシート(回答の転記先のシート)
転記されました!!
\(^o^)/
まとめ
ここまでプログラムを組めば、最初にやりたかった「フォーム送信」→「回答のシート行にデータが入る」→「別のファイルの最終行にデータが追加される」というプロセスの自動化が出来ます!
ご参考下さい!(^^)
今回の内容をまとめた本はこちら!▼