【第2部】Google Apps Script(GAS)の使い方|スプレッドシートに自動で通し番号を付けてみよう

仕事

Googleフォームから収集したデータは、自動的にGoogleスプレッドシートに保存されます。

データを受け付けたら、通し番号を付けて管理をしたくなるのが人情ではないかと思います。
ですが、Googleフォームには「通し番号(連番)」を自動で振る機能はありません

そこで今回の第2回では、Googleスプレッドシートで、コードに従って自動で操作する機能であるGoogle Apps Script(GAS)を使って、
スプレッドシートの1行目にある「通し番号」列に、1〜の番号を自動で入力する方法をご紹介します。


Google Apps Script(GAS)とは?

GASは、Googleが提供している無料の自動化ツールで、次のようなことができます:

  • Googleスプレッドシートへの自動入力・整形
  • Googleフォームやメールとの連携
  • Googleドキュメントの生成やPDF出力 など

Google Chrome等のブラウザ上ですべて完結し、JavaScriptに似た文法で書くことができます。


Apps Script を開く手順

  1. Googleフォームの回答が記録されるスプレッドシートを開く
  2. メニューから「拡張機能」→「Apps Script」を選ぶ
  1. 新しいスクリプトエディタが開きます

Apps Scriptがうまく開けない場合の対処法

複数のGoogleアカウントを同時に使っていると、スクリプトエディタが開けなかったり、実行時にエラーが出ることがあります。
その場合は以下の方法をお試しください:

シークレットウィンドウ(プライベートブラウズ)を開いて、1つのアカウントだけでログインして作業する

これでアカウントの競合を避け、安定して操作できます。


実践:任意の「通し番号」列に番号を自動入力するスクリプト

事前準備

スプレッドシートの1行目のどこかに「通し番号」という名前の列を作成してください。
(位置はA列でもZ列でもかまいません)


スクリプトコード

function assignSerialNumbers() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // アクティブなシートを取得
const data = sheet.getDataRange().getValues(); // 全データを配列として取得
const header = data[0]; // 1行目(ヘッダー)を取得

const serialCol = header.indexOf("通し番号"); // 「通し番号」列の位置を検索
if (serialCol === -1) {
SpreadsheetApp.getUi().alert("「通し番号」列が見つかりません。1行目に列を追加してください。");
return;
}

for (let i = 1; i < data.length; i++) { // データは2行目から開始(i=1)
const value = data[i][serialCol]; // 通し番号列の値を取得
if (!value) { // 空欄の場合のみ処理
const number = i;
sheet.getRange(i + 1, serialCol + 1).setValue(number); // セルに書き込む
}
}
}

実行方法

  1. スクリプトエディタにコードを貼り付け、「💾 保存」ボタンをクリック
  2. 関数一覧から assignSerialNumbers を選び、「▶ 実行」ボタンをクリック(保存してからしか、実行はできません)
  3. 初回は「認証(権限付与)」を求められるので、案内に従って承認します

下記のように、Googleのスプレッドシートを使用していても、注意喚起が表示されます。


詳細を表示、「Apps scriptで自身がつけたプロジェクトの名前(下記画像では、無題のプロジェクト)」(安全ではないページ)に移動と進んでください。

通し番号の列を1行目に事前に作成していないと、実行ログで実行完了の表示がでません。

その際は、Googleスプレッドシートの方で下記のような通知が表示されています。スプレッドシートの1行目に、通し番号という列を手動で入力して、作成してください。


このスクリプトの特徴

機能内容
任意の列に番号付与列の順番に依存せず「通し番号」という見出し名で指定
すでに値があるセルはスキップ上書きされないので、途中で実行しても安心

動作確認ポイント

  • 「通し番号」列がなければエラーメッセージが表示されます
  • 実行後、2行目から下に 1, 2, 3 … のように番号が入っているか確認してください
  • 再実行しても、すでに番号があるセルはそのままです(上書きしない)
  • 注意:入力される番号は「数字」として入力されます。もし、0001などのように0を付けたい、No.0001のように文字を付けたいという場合は、「文字列」として出力すると可能です。そのためには下記の記事をご覧ください。
    👉 演題番号を自動で付ける方法

自動で実行したいときは?|トリガー設定のすすめ

毎回手動でスクリプトを実行するのは手間ですよね。
そんなときに使えるのが「トリガー」機能です。


トリガーとは?

トリガーとは、特定のタイミングで自動的にスクリプトを実行する仕組みのことです。
Google Apps Scriptでは以下のようなトリガーが使えます:

トリガーの種類説明例
フォーム送信時Googleフォームの回答が送られた瞬間に実行
スプレッドシート編集時セルが編集されたときに実行
時間主導トリガー毎日9時、30分ごと、1時間ごと などの定期実行

トリガーの設定方法(フォーム送信時を例に)

  1. Apps Scriptの画面で、左側の「⏱ トリガー」アイコンをクリック
  2. 「+ トリガーを追加」ボタンをクリック
  1. 以下を設定:
    • 実行する関数:assignSerialNumbers(スクリプトでつけた関数の名前)
    • 実行タイミング:フォーム送信時(または時間主導など)
  2. 「保存」→ 初回は再度認証を求められることがあります

トリガーが便利な理由

  • 回答が送られるたびに番号を自動で付与
  • 作業者がスクリプトを実行する手間をゼロにできる
  • 複数人で使う場合も、誰かが忘れて処理が漏れるリスクを防げる

ちなみに、下記記事でもトリガーについてご紹介しています。併せてご覧ください。

👉 フォーム送信時にすべてを自動化する方法


まとめ

Apps Scriptは、ほんの数行のコードから始められる強力な自動化ツールです。
今回紹介した「通し番号付与+トリガー設定」をベースに、どんどん使いこなしていきましょう!

次に読むべき記事はこちら

Googleフォーム×Apps Scriptで演題登録システムを作るシリーズ

続きは・・・
👉 演題番号を自動で付ける方法:GASを使用して、演題番号を通し番号+演題振り分け記号を自動でつける方法を説明しています。

ご覧になりたい記事が決まっているなら・・・
👉 自作演題登録システムについて:Google formを使用して、演題登録システムを自作する方法の全体像を紹介するページです。
👉 Googleフォーム設計と注意点:Google formの作り方、演題登録システム構築に向けたフォームの設計と注意点を説明しています。
👉 Google Apps Script(GAS)の基本:Google Apps Scriptとは何か、どんなことができるのかを、通し番号を付ける例で説明しています。(本ページ)
👉 演題番号を自動で付ける方法:GASを使用して、演題番号を通し番号+演題振り分け記号を自動でつける方法を説明しています。
👉 抄録を整形して出力する方法:GASを使用して、Google formに入力された内容を抄録形式に自動的に整形する方法を説明しています。
👉 投稿者に抄録PDFをメール送付する方法:GASを使用して、自動付与した演題番号と抄録形式のPDFをメールで自動的連絡する方法を説明しています。
👉 フォーム送信時にすべてを自動化する方法:GASのトリガーを使用して、抄録を添付してフォーム入力者に自動応答メールを送信する方法を説明しています。
👉 複数フォームの統合方法:日本語フォームと英語フォーム等のように独立したフォームからの入力を1つのスプレッドシートに統合する方法を説明しています。
👉 受付フォーム構築例:事前参加登録をGoogle formで構築する注意点を説明しています。
👉 フォームリセット方法:Google Formの入力内容をリセットし、受付を1からやり直す方法(フォームの再利用も可能)を説明しています。

コメント

タイトルとURLをコピーしました