LoginSignup
11
8

More than 3 years have passed since last update.

【GAS】Googleフォームの回答データに連番をふる

Last updated at Posted at 2019-07-29

はじめに

Googleフォームの回答は新しく行を作って挿入しているため、
左にINDEXの列を作って数字をふっても、Googleフォームから回答が送られると、下記のようにINDEX列のセルは空白となってしまいます。
スクリーンショット 2019-07-28 22.36.04.png

スクリーンショット 2019-07-28 22.09.09.png
今回は、上記の問題をGASを使って解決しました。

GASをいじったことのない方は、チュートリアル記事を用意したので参考にしてみてください。
GASで「Hello,World!」を出力するまでをまとめてみた。

実装

タイムスタンプ列の左隣にINDEX列を作成する

この時、A列はタイムスタンプ型に変換されるようになってしまっているため、書式を「自動」に変更する。
スクリーンショット 2019-07-28 20.49.50.png
スクリーンショット 2019-07-28 20.49.29.png
スクリーンショット 2019-07-28 20.50.25.png

スクリプトエディタから新規関数を実装する

機能は、"A列の最終行が空白である時、INDEXを割り振る"というもの。

function myFunction() {
  var spreadsheet = SpreadsheetApp.openById('<id>');
  var sheet = spreadsheet.getSheets()[0];
  var range = sheet.getRange(sheet.getLastRow(),1);
  if(range.isBlank() == true){
    range.setValue("=ROW()-1");
  }
}

Googleフォームから回答が送信された時に、上記で実装した関数が起動するように設定する

スクリプトエディタ左上の「編集」→「現在のプロジェクトのトリガー」から新規トリガーを作成する。
スクリーンショット 2019-07-28 20.54.04.png

結果

適当な回答を送信し、INDEXの値が割り振られるようになったことを確認した。
スクリーンショット 2019-07-28 20.54.52.png
スクリーンショット 2019-07-28 20.55.15.png

 終わりに

今回の実装を応用すると、Googleフォームの回答データに初期値を持たせることができます。
活用してみてください。

11
8
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
11
8