GASで案件入力フォームのデータをクリアするコード(clearContent)|入力フォーム初期化を自動化する方法

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

このコードでできること

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

・案件IDを自動採番

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

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に入力データが存在するか確認する

サンプルファイル

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

案件入力フォーム_スプレッドシート(GASコードなし)

【完成】案件入力フォーム_スプレッドシート(GASコードあり)

関連記事

GASで案件データを登録するコード(setValue)

GASのマクロ名を確認する方法|function ○○()がマクロ名です

GASで毎日自動実行する方法|トリガー設定

次回予告

次回は「GASでチェックボックスにチェックしたら別シートへ転記するコード」を紹介予定です。

コメント