VBAで案件データを登録するコード|案件管理を自動化する方法

・入力フォームの内容を案件データベースへ自動登録
・案件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セルに日付が入力されているか確認する
・セルの表示形式を日付に設定する

サンプルファイル

このコードを試せるサンプルファイルを配布しています。

サンプルファイルをダウンロード(ZIP)

関連記事

▶ VBAで入力フォームを自動クリアするコード【準備中】

▶ VBAでチェックボックスにチェックしたら別シートへ転記するコード【準備中】

▶ VBAで担当者別にデータを集計するコード【準備中】

コメント