Google Apps Script

Googleフォーム回答を
カテゴリ別シートに自動仕分け

Googleフォームの回答を、選択肢の内容によって別々のシートへ自動振り分けするGASスクリプトです。手作業のコピペ作業を完全になくします。

Google Apps Script Google Forms Spreadsheet API フォーム送信トリガー
処理の流れ
📋
フォーム送信
ユーザーが回答
トリガー発火
onFormSubmit
🔍
カテゴリ判定
回答内容を分析
📂
シートへ転記
該当シートに追記
スクリプト(GAS)
Google Apps Scriptsort_form.gs
// フォーム送信時にカテゴリ別シートへ自動仕分け
function onFormSubmit(e) {
  const ss       = SpreadsheetApp.getActiveSpreadsheet();
  const response = e.namedValues;

  // フォームの回答を取得(列名でアクセス)
  const name     = response['お名前'][0];
  const email    = response['メールアドレス'][0];
  const category = response['お問い合わせ種別'][0];
  const message  = response['内容'][0];
  const datetime = new Date().toLocaleString('ja-JP');

  // カテゴリに対応するシート名を定義
  const sheetMap = {
    'サービスについて'  : 'service',
    '料金について'      : 'pricing',
    '採用について'      : 'recruit',
    'その他'            : 'other'
  };

  // 対応シートを取得(なければ作成)
  const sheetName = sheetMap[category] || 'other';
  let   sheet     = ss.getSheetByName(sheetName);
  if (!sheet) sheet = ss.insertSheet(sheetName);

  // データを末尾に追記
  sheet.appendRow([datetime, name, email, category, message]);
  Logger.log(`仕分け完了: ${category} → ${sheetName}`);
}
ポイント解説
📂
シートが存在しない場合は自動作成 新しいカテゴリが追加されても、対応するシートを自動生成するため、メンテナンス不要です。
🗂️
namedValues で列名アクセス 列番号ではなくフォームの質問名でデータを取得するため、フォームの列順が変わっても壊れません。
フォーム送信トリガーで即時実行 送信と同時にスクリプトが走るため、リアルタイムに仕分けが完了します。