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

Googleフォームから収集したデータは、自動的にGoogleスプレッドシートに保存されます。
ですが、「通し番号(連番)」を自動で振る機能はありません

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


Google Apps Script(GAS)とは?

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

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

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


Apps Script を開く手順

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

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); // セルに書き込む
}
}
}

実行方法

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

このスクリプトの特徴

機能内容
任意の列に番号付与列の順番に依存せず「通し番号」という見出し名で指定
0001〜形式の4桁連番ゼロ埋めで並べ替えもしやすい形式
すでに値があるセルはスキップ上書きされないので、途中で実行しても安心

動作確認ポイント

  • 「通し番号」列がなければエラーメッセージが表示されます
  • 実行後、2行目から下に 0001, 0002, 0003 … のように番号が入っているか確認してください
  • 再実行しても、すでに番号があるセルはそのままです(上書きしない)

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

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


トリガーとは?

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

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

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

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

トリガーが便利な理由

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

次回予告

第3部では、学会の演題登録を想定してGoogleフォームの回答に自動で受付番号を付ける処理を解説します。
同じ人が複数回答したり、後から修正した場合でも番号が安定する、実用的な構成にする予定です!


まとめ

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

コメント

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