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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2755閲覧

GoogleFormの回答"結果"を複製して再利用したい

KoTT

総合スコア19

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/06/05 05:39

編集2021/06/07 00:49

回答結果(入力済)を複製して、新しい回答に使うことはできないのでしょうか?

左記を参考にさせいていただき、https://liapoc.com/googleform-edit.html
回答結果が出力されるスプレッドシートのA列(0番目の列)に回答編集用URLが自動で入力されるようにできました。
加えて、このスプレッドシートの"回答編集用URL"をコピーする"という挙動にあわせて、回答結果は維持したまま、IDの異なる別の回答を生成する・・・といったことはできないでしょうか。

javascript

1function SubmitMail(e){ 2 3var sheetId = 'シートのキーID'; 4var sheetName = 'シートの名前'; 5 6//1_フォームの回答シートを取得 7var SS = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName); 8 9//2_回答シートを取得 10var sheetDates = SS.getDataRange(); 11 12//3_フォームIDを保存 13var formid = 'フォームID'; 14 15//4_回答データ一覧をフォームから取得 16var formDates = FormApp.openById(formid).getResponses(); 17 18 19for(var i = 0;i<formDates.length;i++){ 20 21//A列にデータが入っていたらスキップ 22if(sheetDates.getCell(i+2, 1).getValue() != ""){ 23continue; 24} 25 26//5_回答データ一覧をフォームから一番最後の編集用URL取得 27var EditableUrl = formDates[Number(i)].getEditResponseUrl(); 28 29//6_回答用URLを作成 30var EditableStr = '=HYPERLINK("' + EditableUrl + '","編集用URL.' + Number(i+1) + '")'; 31 32//7_回答用URLをAセルへ挿入 33sheetDates.getCell(i+2, 1).setValue(EditableStr); 34} 35}

イメージ
Before : フォームから回答を取得。A2にハイパーリンクが入る。
イメージ説明

After : スプレッドシートA2のリンクを別名保存してA3コピー&ペーストし、フォームを開いて回答結果を入力。
イメージ説明

機能の目的:フォームで取得した過去の回答結果を流用して新しい回答を作成したい。理由は、設問数が多く、その5割程度は前回と同じ回答が多いためです。

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

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

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

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

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

draq

2021/06/05 14:28

回答編集用URL というのは何のことでしょうか? このハイパーリンクをコピーして、新しいハイパーリンクを生成する というのも意味がよくわかりません。
KoTT

2021/06/06 23:34

質問内容を修正しました
draq

2021/06/07 00:10

まだ、「このスプレッドシートの"回答編集用URL"をコピーする"という挙動にあわせて、回答結果は維持したまま、IDの異なる別の回答を生成する」というのが何を意味しているのかよくわかりません。 "回答編集用URL"をコピーする"とは?回答結果は維持とは?IDとは?別の回答を生成とは? 言葉で説明するより、処理前と処理後(手動で編集した期待している結果)のスクリーンショットを取り画像を回答に貼り付けた方が早い気がします。
KoTT

2021/06/07 00:49

すいません、画像を追加しました。。
guest

回答1

0

ベストアンサー

要は初期値を設定したGoogleフォームの入力画面を開くURLを生成したいってことだと解釈しました。

Google フォームの回答用URLは https://docs.google.com/forms/d/e/{id}/viewform のようになっていますが、このURLの後ろにエントリごとにパラメータを追加することで初期値を指定出来ます。

例えば、https://docs.google.com/forms/d/e/{id}/viewform?entry.1234=hoge&entry.5678=xxxx とすると、entry.1234 に "hoge" が、entry.5678 に "xxxx" が初期入力されます。

Google フォームの右上の縦の三点リーダ(︙)の「事前入力したURLを取得」で開ける画面から必要な項目の初期値を入力して、「リンクを取得」してみるとどんなエントリIDを指定すればいいかわかります。

投稿2021/06/07 03:00

draq

総合スコア2577

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

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

KoTT

2021/06/07 03:07

なんと!そんなことができるのですか!ありがとうございます。さっそくいまからやってみます!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問