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

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

新規登録して質問してみよう
ただいま回答率
85.31%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

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

Q&A

解決済

1回答

1212閲覧

GASを使ってスプレッドシートからフォームを作る際、回答を得るためのスプレッドシートにリンクさせる方法

lolimaru

総合スコア1

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

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

0グッド

2クリップ

投稿2023/04/19 12:03

編集2023/04/20 02:16

GASのコードを検索しながら書いている初心者です。

実現したいこと

①GASでスプレッドシートに記入されている質問からフォームを作る (済)
②フォームの回答を得るために、GASで「スプレッドシートにリンク」させる

詳細

スプレッドシートに記入されている質問をGASを使ってフォーム化。
フォームからの回答を集計するためにスプレッドシートにリンクさせたいのですが、GASを記述してリンクさせる方法がわかりません。
リンクさせたいスプレッドシートは既存のスプレッドシートで、フォームを作成するGASが書いてあるスプレッドシートです。

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

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

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

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

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

YellowGreen

2023/04/19 18:51

フォームの回答タブにスプレッドシートのアイコンが表示されていないのですか?
lolimaru

2023/04/20 02:19

コメントありがとうございます。 フォームをGASで作成すると同時にリンクされている状態をGASの記述で実現できればと思っています。
YellowGreen

2023/04/20 03:02

私の日本語の読解力が乏しかったようで、申し訳ありませんでした。
lolimaru

2023/04/20 05:28

こちらこそやりたいことを明確にしきれていませんでした。 もし、お分かりでしたらご協力いただければと思います。
guest

回答1

0

ベストアンサー

既にスプレッドシートにスクリプトがあるようなので、
スプレッドシートに保存するスクリプトにしてあります。
コメントに記載しておきましたが、スクリプトをフォームに保存したいときは、
コード内のコメント行を入れ替えてください。

実行すると、フォームにスプレッドシートへのリンクが設定され、
スプレッドシートに回答先のシートが作成されます。
フォームのリンクの設定を確認するにはブラウザをリロードしてください。

javascript

1//フォームの回答先を設定する 2//スプレッドシートから設定するバージョンバージョン 3//フォームから実施するときはコメント行を入れ替える 4function setDestinationSpreadsheet() { 5 // const form = FormApp.getActiveForm();//フォームから実施する場合 6 const ss = SpreadsheetApp.getActiveSpreadsheet();//←スプレッドシートから実施する場合 7 8 // const ss = SpreadsheetApp.openById('xxxxxxxxxxxxxxxx');//←フォームから実施する場合 9 const form = FormApp.openById('xxxxxxxxxxxxxxxx');//←スプレッドシートから実施する場合 10 11 form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId()); 12}

投稿2023/04/20 08:00

編集2023/04/20 08:16
YellowGreen

総合スコア868

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

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

YellowGreen

2023/04/20 08:14 編集

他の関数内で実行したいときは、 form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId()); の行だけをその関数に入力して、 ss をスプレッドシートが代入されている変数(例えば、spSheet)に変え、 form をフォームが代入されている変数(例えば、targetForm)に変えて targetForm.setDestination(FormApp.DestinationType.SPREADSHEET, spSheet.getId()); のように実行すればいいかと思います。
YellowGreen

2023/04/20 08:32

なお、シートに回答を送信している回答用フォームのURLを取得したいときは、 対象のシートが代入されている変数がsheetのとき、 const url = sheet.getFormUrl(); で変数urlに回答用フォームのURLを取得できます。
lolimaru

2023/04/20 10:44

無事実装することができました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問