📊 Excel VBA Top100
⚡

BulkDataEntry

自動化

指定した値を選択範囲の全セルに一括入力します

ユーザーが入力フォームから一括してデータを入力し、指定したシートのテーブルに自動追加するマクロです。Excelの入力フォーム機能のVBA版で、入力項目・バリデーション・追加先の定義をマクロ内でカスタマイズできます。直接セルに入力する方法と異なり、入力フォームを使うことでデータの整合性チェック・必須項目の強制入力・入力ガイドの表示などが実現できます。データ入力作業の正確性と効率を同時に向上させます。内部ではUserFormのコントロールから値を取得し、対象シートのListObjectまたは最終行にRange.Offsetで追記する構成です。直接セルへの手入力と異なり、入力規則をフォーム側で強制できるため、必須項目の入力漏れや形式違いのデータ混入を未然に防げます。TimestampCellsと組み合わせれば入力日時も同時に記録できます。

BulkDataEntry デモ

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 入力したいセル範囲を選択してから BulkDataEntry を実行します

🎯 活用シーン

  • ✓日々の業務報告や売上実績を専用フォームから入力して、報告シートに自動蓄積していく仕組みを構築したいとき
  • ✓経費精算データを入力フォームから登録して、精算シートに自動追記する業務効率化システムを作りたいとき
  • ✓在庫入出荷の記録を専用フォームで管理して、入力ミスを防ぎながら在庫データベースを自動更新したいとき
  • ✓現場担当者が共有パソコンで日報を入力する際に、入力ミスを防ぎたいとき
  • ✓アンケート回収データを集計担当者が手入力する際に、選択式項目の表記ゆれを防ぎたいとき

💡 実装のヒント

  • ▸UserFormを使ったカスタム入力フォームを作成することで、入力項目のラベル表示・必須項目チェック・ドロップダウン選択など高度な入力補助が実現できます。
  • ▸入力バリデーション(日付形式・数値範囲・リスト選択など)をフォームに組み込むことで、入力ミスを入力時点で防止できます。
  • ▸入力後にリストの最終行に自動追加するよう設計することで、データの管理が容易になります。
  • ▸ドロップダウンリストの選択肢はマスターシートから動的に取得するようにしておくと、選択肢の追加・変更が容易になります。
  • ▸登録直後にフォームをクリアして次の入力に備える処理を入れておくと、連続入力作業の効率が上がります。

💻 VBAコード

' BulkDataEntry
' -----------------
' Macro Name: BulkDataEntry
' Description: 指定した値を選択範囲の全セルに一括入力します
' Parameters: なし
' Returns: なし
' Usage: 入力したいセル範囲を選択してから BulkDataEntry を実行します
' -----------------

Sub BulkDataEntry()
    On Error GoTo ErrorHandler

    Dim rng As Range
    Dim inputValue As String

    If TypeName(Selection) <> "Range" Then
        MsgBox "セル範囲を選択してから実行してください", vbCritical, "エラー"
        Exit Sub
    End If

    Set rng = Selection

    inputValue = InputBox("入力する値を入力してください", "一括入力")
    If inputValue = "" Then
        If MsgBox("空白を入力しますか?", vbYesNo, "確認") = vbNo Then Exit Sub
    End If

    rng.Value = inputValue

    MsgBox rng.Cells.Count & " セルに値を入力しました", vbInformation, "完了"

    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub