Googleフォームから収集したデータは、自動的にGoogleスプレッドシートに保存されます。
ですが、「通し番号(連番)」を自動で振る機能はありません。
そこで今回の第2回では、Google Apps Script(GAS)を使って、
スプレッドシートの1行目にある「通し番号」列に、0001〜の番号を自動で入力する方法をご紹介します。
Google Apps Script(GAS)とは?
GASは、Googleが提供している無料の自動化ツールで、次のようなことができます:
- スプレッドシートへの自動入力・整形
- Googleフォームやメールとの連携
- Googleドキュメントの生成やPDF出力 など
ブラウザ上ですべて完結し、JavaScriptに似た文法で書くことができます。
Apps Script を開く手順
- Googleフォームの回答が記録されるスプレッドシートを開く
- メニューから「拡張機能」→「Apps Script」を選ぶ
- 新しいスクリプトエディタが開きます
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 = String(i).padStart(4, '0'); // 0001形式で作成
sheet.getRange(i + 1, serialCol + 1).setValue(number); // セルに書き込む
}
}
}
実行方法
- スクリプトエディタにコードを貼り付け、「💾 保存」ボタンをクリック
- 関数一覧から
assignSerialNumbers
を選び、「▶ 実行」ボタンをクリック - 初回は「認証(権限付与)」を求められるので、案内に従って承認します
このスクリプトの特徴
機能 | 内容 |
---|---|
任意の列に番号付与 | 列の順番に依存せず「通し番号」という見出し名で指定 |
0001〜形式の4桁連番 | ゼロ埋めで並べ替えもしやすい形式 |
すでに値があるセルはスキップ | 上書きされないので、途中で実行しても安心 |
動作確認ポイント
- 「通し番号」列がなければエラーメッセージが表示されます
- 実行後、2行目から下に
0001
,0002
,0003
… のように番号が入っているか確認してください - 再実行しても、すでに番号があるセルはそのままです(上書きしない)
自動で実行したいときは?|トリガー設定のすすめ
毎回手動でスクリプトを実行するのは手間ですよね。
そんなときに使えるのが「トリガー」機能です。
トリガーとは?
トリガーとは、特定のタイミングで自動的にスクリプトを実行する仕組みのことです。
Google Apps Scriptでは以下のようなトリガーが使えます:
トリガーの種類 | 説明例 |
---|---|
フォーム送信時 | Googleフォームの回答が送られた瞬間に実行 |
スプレッドシート編集時 | セルが編集されたときに実行 |
時間主導トリガー | 毎日9時、30分ごと、1時間ごと などの定期実行 |
トリガーの設定方法(フォーム送信時を例に)
- Apps Scriptの画面で、左側の「⏱ トリガー」アイコンをクリック
- 「+ トリガーを追加」ボタンをクリック
- 以下を設定:
- 実行する関数:
assignSerialNumbers
- 実行タイミング:フォーム送信時(または時間主導など)
- 実行する関数:
- 「保存」→ 初回は再度認証を求められることがあります
トリガーが便利な理由
- 回答が送られるたびに番号を自動で付与
- 作業者がスクリプトを実行する手間をゼロにできる
- 複数人で使う場合も、誰かが忘れて処理が漏れるリスクを防げる
次回予告
第3部では、学会の演題登録を想定してGoogleフォームの回答に自動で受付番号を付ける処理を解説します。
同じ人が複数回答したり、後から修正した場合でも番号が安定する、実用的な構成にする予定です!
まとめ
Apps Scriptは、ほんの数行のコードから始められる強力な自動化ツールです。
今回紹介した「通し番号付与+トリガー設定」をベースに、どんどん使いこなしていきましょう!
コメント