・案件登録後に入力フォームを自動で空欄にできる
・次の案件入力をすぐ開始できる
・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のマクロ名を確認する方法|function ○○()がマクロ名です
次回予告
次回は「GASでチェックボックスにチェックしたら別シートへ転記するコード」を紹介予定です。

コメント