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

📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(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