GASでフォーム入力データを別シートへ転記するコード|案件管理を自動化する方法

・入力フォームから案件データベースへ登録できる
・案件IDを自動で採番できる
・ボタンを押すだけで利用可能

このコードでできること

・入力フォームの内容を別シートへ転記
・案件IDを自動採番
・案件データを蓄積

GASコード

function saveProject() {

  const ss = SpreadsheetApp.getActiveSpreadsheet();

  const formSheet = ss.getSheetByName("案件入力フォーム");
  const dbSheet = ss.getSheetByName("案件データベース");

  // 次の案件IDを生成(A00001形式)
  const lastRow = dbSheet.getLastRow();
  const nextNumber = lastRow;

  const caseId =
    "A" +
    String(nextNumber).padStart(5, "0");

  // フォームの値取得
  const projectName = formSheet.getRange("C2").getValue();
  const clientName = formSheet.getRange("C3").getValue();
  const person = formSheet.getRange("C4").getValue();

  const orderDate = Utilities.formatDate(
    new Date(formSheet.getRange("C5").getValue()),
    Session.getScriptTimeZone(),
    "yyyy/MM/dd"
  );

  const amount = formSheet.getRange("C6").getValue();
  const status = formSheet.getRange("C7").getValue();
  const memo = formSheet.getRange("C8").getValue();

  // 登録日
  const today = Utilities.formatDate(
    new Date(),
    Session.getScriptTimeZone(),
    "yyyy/MM/dd"
  );

  // データベースへ追加
  dbSheet.appendRow([
    today,
    caseId,
    projectName,
    clientName,
    person,
    orderDate,
    amount,
    status,
    memo
  ]);

  SpreadsheetApp.getUi().alert(
    "案件を登録しました。" 
  );

}

シート構成

案件入力フォーム

セル項目
C2案件名
C3顧客名
C4担当者
C5受注日
C6金額
C7ステータス
C8備考

入力例

項目
案件名HP制作
顧客名株式会社ABC
担当者山田
受注日2026/06/14
金額500000
ステータス進行中
備考トップページ修正あり

図形ボタンを配置し、以下の関数を割り当てます。

関数名:saveProject

実行ボタンの作成方法

案件データベース

ABCDEFGHI
登録日時案件ID案件名顧客名担当者受注日金額ステータス備考

カスタマイズ例

パターン①

登録後に入力フォームをクリアする

追加コード

formSheet.getRange("B3:B9").clearContent();

パターン②

案件IDを5桁にする

修正コード

const projectId = formSheet.getRange("B2").getValue();

よくあるエラー

ボタンを押しても実行されない

対処法

・関数名がregisterDataになっているか確認
・ボタンに関数を割り当てているか確認
実行ボタンの作成方法

シートが見つからない

対処法

・案件入力フォームのシート名を確認
・案件データベースのシート名を確認

サンプルファイル

このコードを試せるGoogleスプレッドシートを配布しています。

▶ サンプルシートをコピーする

ファイル名

案件管理システム_1(GASコードなし)

【完成】案件管理システム_1(GASコードあり)

関連記事

▶ GASで入力フォームを自動クリアするコード

▶ GASでチェックボックスにチェックしたら別シートへ転記するコード

▶ GASで担当者別にデータを集計するコード

コメント