かずきち。の日記

サーバサイドエンジニアのつぶやき

【GAS】イベント参加フォームでみんなの回答を見てから回答したい人向けにスプレッドシートにフォームを埋め込む【13行】


引用:
https://dekiru.net/article/19272/

忘年会の出欠案内がもうすぐ始まります

こういった出欠確認はよくありますが…
誰が「参加」と回答しているか知りたくないですか?
親しい人が参加と言っているなら参加したいし、嫌いな人がいるならやめておこうってなるはずです。
そして世の中のアンケートというものは「回答」してから「 アンケート結果」を見せるのです。

お買い物するときは   「みんな買っているし買おう」になりますし、
飲み会に参加するときも「みんな来るみたいだから行こう」になります。

そこで今回は回答結果のスプレッドシートにiframeポップアップでフォームを表示することを目的とします。
完成形は

このようにGoogleスプレッドシート内にフォームをポップアップするボタンを設置します。
そうすれば他人の回答を見た後に答えることができます。
むしろこのような形式にしたほうが重複の調整などが必要なくなったり便利な場合があります。

コードはわずか13行です

ポイントは一点。
スプレッドシート内にiframeを埋め込むことだけです。

unction openForm() {
 const html = `<iframe src="https://docs.google.com/forms/d/e/自分のフォームID/viewform?embedded=true" width="640" height="1151" frameborder="0" marginheight="0" marginwidth="0">読み込んでいます…</iframe>`;
 
//  setHeightで縦setWidthで横の大きさを設定
 const htmlOutput = HtmlService.createHtmlOutput(html).setHeight(700).setWidth(650);
 
 const ui = SpreadsheetApp.getUi();
 ui.showModalDialog(htmlOutput, "オープンチャット参加者居住地登録");
}
//メニューバーに実行ボタン表示
function onOpen(){
 const ui = SpreadsheetApp.getUi();
 const menu = ui.createMenu("居住地登録");
 menu.addItem("フォーム入力", "openForm");
 menu.addToUi();
}

わずか13行ほどで実装できました。
フォームとスプシを同時に表示させたいという方はぜひ参考にしてみてください。

注目記事