・入力フォームの内容を案件データベースへ自動登録
・案件IDを自動発番
・案件管理表を簡単に作成可能
・VBA初心者でもコピペですぐ使える
このコードでできること
・フォーム入力内容を一覧へ登録
・案件IDを自動作成
・登録日を自動記録
VBAコード
Option Explicit
Sub 案件登録()
Dim wsForm As Worksheet
Dim wsDB As Worksheet
Dim lastRow As Long
Dim nextRow As Long
Dim caseId As String
Set wsForm = Worksheets("案件入力フォーム")
Set wsDB = Worksheets("案件データベース")
'最終行取得
lastRow = wsDB.Cells(wsDB.Rows.Count, "A").End(xlUp).Row
'登録行
nextRow = lastRow + 1
'案件ID生成(A00001形式)
caseId = "A" & Format(nextRow - 1, "00000")
'データ転記
wsDB.Cells(nextRow, 1).Value = Format(Date, "yyyy/mm/dd")
wsDB.Cells(nextRow, 2).Value = caseId
wsDB.Cells(nextRow, 3).Value = wsForm.Range("C2").Value
wsDB.Cells(nextRow, 4).Value = wsForm.Range("C3").Value
wsDB.Cells(nextRow, 5).Value = wsForm.Range("C4").Value
wsDB.Cells(nextRow, 6).Value = Format(wsForm.Range("C5").Value, "yyyy/mm/dd")
wsDB.Cells(nextRow, 7).Value = wsForm.Range("C6").Value
wsDB.Cells(nextRow, 8).Value = wsForm.Range("C7").Value
wsDB.Cells(nextRow, 9).Value = wsForm.Range("C8").Value
MsgBox "案件を登録しました。" , _
vbInformation, "登録完了"
End Sub
カスタマイズ例
パターン①
登録後に入力フォームをクリアする
修正コードのみ掲載
wsForm.Range("C2:C8").ClearContents
MsgBoxの前へ追加してください。
パターン②
案件IDの先頭文字を変更する
修正コードのみ掲載
caseId = "P" & Format(nextRow - 1, "00000")
P00001形式で発番できます。
よくあるエラー
症状
インデックスが有効範囲にありません
対処法
・案件入力フォームのシート名を確認する
・案件データベースのシート名を確認する
症状
日付が正しく登録されない
対処法
・C5セルに日付が入力されているか確認する
・セルの表示形式を日付に設定する
サンプルファイル
このコードを試せるサンプルファイルを配布しています。
関連記事
▶ VBAで入力フォームを自動クリアするコード【準備中】
▶ VBAでチェックボックスにチェックしたら別シートへ転記するコード【準備中】
▶ VBAで担当者別にデータを集計するコード【準備中】
コメント