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

・入力フォームの内容を案件データベースへ自動登録
・案件IDを自動発番
・案件管理表を簡単に作成可能
・VBA初心者でもコピペですぐ使える

このコードでできること

・フォーム入力内容を一覧へ登録
・案件IDを自動作成
・登録日を自動記録

サンプルファイル

Excel VBAサンプルは、OneDriveの配布フォルダーからダウンロードします。
配布フォルダーを開き、必要なファイルまたはフォルダーを選択してください。
すべてのファイルをダウンロードする必要はありません。
必要に応じてファイルのダウンロードをしてください。

VBAコードのサンプルファイルを利用する方法

01.案件データを登録する

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で案件入力フォームのデータをクリアするコード

▶ プロジェクト トップ記事へ戻る

コメント