5
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Googleフォームのプルダウン項目をリスト化して作業効率化

Last updated at Posted at 2023-09-19

Google Spread Sheetからプルダウンに追加される様子

みなさん、こんにちは。
紙、印鑑、手作業に埋もれて業務をしている昭和男子の会社員です。

Googleフォームって簡単に作成できて、アンケートや出欠確認などデータ収集に使いやすく、しかも無料です。集計も自動で行ってくれて、グラフ化も自動なので便利です。
しかし、回答方法をしっかり統一しないとデータにばらつきが出てしまうので、注意が必要です。
例えば、「会社名を記入してください。」と記述式に回答依頼をすると、「株式会社○○」とか「㈱○○」、「(株)○○」、「○○」と同じ会社なのにデータ上は、違う認識となってしまい集計結果が正しくなりません。

そんな時は、プルダウンでの選択式にすると正しいデータとなるので便利です。なので、私は、会社の所属店舗名の回答依頼するときは、プルダウンを使用します。が、たくさんの店舗が存在し、毎回毎回、1店舗づつ手作業で入力していくのも大変です。
そこで、Google Spread Sheetに店舗名をリスト化し、GAS(Google Apps Script) を使用することで、簡単にプルダウン項目が追加できます。

参考にさせていただいた記事はこちら

プルダウン項目をスプレッドシートから追加2023-09-19.png

動画での解説付きでとてもわかりやすいです。👍

作り方

使用するもの
 ・Google Forms
 ・Google Spread Sheet
 ・Google Apps Script

①Google Formsで質問を作成
2023-09-19 (1).png

②Google Spread Sheetで店舗一覧表を作成

2023-09-19 (2).png

③Google Apps Scriptを開く
2023-09-19 (3).png

2023-09-19 (4).png

④下記のスクリプトを貼り付ける

スクリプト

プルダウン項目をスプレッドシートから追加
const FORMID = '******************************************'   //① GoogleフォームのID
const ITEMNAME = '項目名'                                      // 項目のタイトル
const SHEETNAME = 'シート1'                                    //③ 読み込むシート名


/**
 * Googleフォームのプルダウンリストに項目を追加する
 */
function AddGoogleFormsListItem() {
  const form = FormApp.openById(FORMID)
  const items = form.getItems()

  const section = choiceValues()
  console.log(section)

  //デバック用Google Formsの質問名と、IDを取得
  for (let i = 0; i < items.length; i++) {

    const item = items[i]
    const itemName = item.getTitle()
    const itemId = item.getId()

    console.log(`質問名 ${itemName}, \n質問のID ${itemId}`)

    //スプレッドシートのシェアハウスDBから内容を読み取って、Formの項目を更新する。
    if (itemName == ITEMNAME) {
      items[i].asListItem().setChoiceValues(section)
    }//if
  }//for
}//end


//Googleシートから、プルダウンリストの選択肢を取得する
function choiceValues() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEETNAME)
  const lastRow = sheet.getLastRow()
  const values = sheet.getRange(1, 1, lastRow, 1).getValues()
  values.shift()

  return values
}

⑤スクリプトの最初の3行を変更する

const FORMID = '***********************' //① GoogleフォームのID

const ITEMNAME = '項目名' //② 項目のタイトル

const SHEETNAME = 'シート1' //③ 読み込むシート名

① GoogleフォームのIDは、赤矢印の間のところをコピーし、貼り付ける
2023-09-19 (5) - コピー.png
② 項目のタイトルは、質問の赤丸のところをコピーし、貼り付ける。
2023-09-19 (6).png
③ 読み込むシート名は、Google Spread Sheetの赤丸のシート名をコピーし、貼り付ける。

イベントの受付業務をGoogle Formsで作成

今回は、イベントの受付業務を、スマホでQRコードを読み込んでいただき受付をするという業務改善をGoogle Formsで行いました。
これまでは、事前に名簿を用意して、手作業で紙にチェックを入れて受付をしていました。一度に来場されると、紙にチェックを入れるだけとはいえ、行列が出来ました。
店舗名と氏名を入力するだけの受付ですが、氏名はともかく店舗名を簡単にプルダウン項目化ができ、正しいデータ収集が可能になりました。
ちりも積もれば、山となる」を心がけて業務改善を積み重ねていきたいです。
ファイト!💪

5
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?