GASで案件入力フォームのデータをクリアするコード

・案件登録後に入力フォームを自動で空欄にできる
・次の案件入力をすぐ開始できる
・GAS初心者でもコピペで利用可能

このコードでできること

・案件データをデータベースへ登録

・案件IDを自動採番

・登録後に入力フォームを自動クリア

サンプルファイル

GASサンプルは、Googleドライブの配布フォルダーから利用します。

必要なファイルを選び、自分のGoogleドライブへコピーして使用してください。

配布フォルダーには、主に作業用サンプルと完成版があります。

・作業用サンプル
操作説明を見ながら、GASコードを設定して学びたい方に向いています。

・完成版
コードが設定された状態で、すぐに動作を確認したい方に向いています。

コピー方法や初回認証などの詳しい手順は、次のページで確認してください。

GASサンプルファイルの受け取り方
02.登録後に入力フォームを自動クリアする

GASコード

function saveProject() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var wsForm = ss.getSheetByName("案件入力フォーム");
  var wsDB = ss.getSheetByName("案件データベース");

  // 最終行取得
  var lastRow = wsDB.getLastRow();
  var nextRow = lastRow + 1;

  // 案件ID生成(A00001形式)
  var seq = nextRow - 1;
  var caseId = "A" + ("00000" + seq).slice(-5);

  // データ転記
  var date = new Date();
  var formattedDate = Utilities.formatDate(
    date,
    Session.getScriptTimeZone(),
    "yyyy/MM/dd"
  );

  wsDB.getRange(nextRow, 1).setValue(formattedDate);
  wsDB.getRange(nextRow, 2).setValue(caseId);
  wsDB.getRange(nextRow, 3).setValue(wsForm.getRange("C2").getValue());
  wsDB.getRange(nextRow, 4).setValue(wsForm.getRange("C3").getValue());
  wsDB.getRange(nextRow, 5).setValue(wsForm.getRange("C4").getValue());

  var dateValueC5 = wsForm.getRange("C5").getValue();
  wsDB.getRange(nextRow, 6).setValue(
    Utilities.formatDate(
      new Date(dateValueC5),
      Session.getScriptTimeZone(),
      "yyyy/MM/dd"
    )
  );

  wsDB.getRange(nextRow, 7).setValue(wsForm.getRange("C6").getValue());
  wsDB.getRange(nextRow, 8).setValue(wsForm.getRange("C7").getValue());
  wsDB.getRange(nextRow, 9).setValue(wsForm.getRange("C8").getValue());

  // 入力フォームのクリア
  wsForm.getRange("C2:C8").clearContent();

  // 完了通知
  SpreadsheetApp.getUi().alert("案件を登録しました。");
}

カスタマイズ例

パターン①

入力項目を追加する場合

wsDB.getRange(nextRow, 10).setValue(
  wsForm.getRange("C9").getValue()
);

パターン②

クリア範囲を広げる場合

wsForm.getRange("C2:C20").clearContent();

よくあるエラー

TypeError: Cannot read properties of null

対処法
・シート名が一致しているか確認する
・案件入力フォーム、案件データベースの名称を確認する

入力フォームがクリアされない

対処法
・clearContent()の記述位置を確認する
・C2:C8に入力データが存在するか確認する

関連記事

▶ 前のページ:案件データを登録するコード
▶ 次のページ:GASでチェックボックスにチェックが入っていたら2つのシートに転記するコード
プロジェクトトップページへ戻る

コメント