Excelで日々の入力作業をしていると、同じような形式のデータを繰り返し入力する場面があります。
「入力欄を決まった形にしたい」「誤入力を減らしたい」と感じたことがある方におすすめなのが、フォーム入力の自動化です。
マクロを使えば、ユーザーフォームを通じて誰でも簡単にデータを追加できる仕組みを作れます。
今回は、基本的なフォーム作成と、入力内容をワークシートに転記する仕組みを解説します。
ユーザーフォームで入力画面を作成する
まずは、ユーザーフォームに3つの入力欄(名前、部署、日付)と「追加」ボタンを設置します。
VBEで次の手順を行います。
- Alt + F11 でVBEを開く
- メニューから「挿入」→「ユーザーフォーム」
- テキストボックス3つと、コマンドボタンを1つ追加
- 各コントロールの名前を次のように設定
- txtName(名前入力欄)
- txtDept(部署入力欄)
- txtDate(日付入力欄)
- btnAdd(追加ボタン)
次に、ボタンに次のコードを記述します。
Private Sub btnAdd_Click()
Dim ws As Worksheet
Dim r As Long
Set ws = ThisWorkbook.Sheets("データ")
' 次の空行を取得
r = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
' 入力値を転記
ws.Cells(r, 1).Value = txtName.Value
ws.Cells(r, 2).Value = txtDept.Value
ws.Cells(r, 3).Value = txtDate.Value
' 入力欄をクリア
txtName.Value = ""
txtDept.Value = ""
txtDate.Value = ""
MsgBox "データを追加しました。"
End Sub
このコードは、フォームに入力された内容を、「データ」というシートの末尾に追加する仕組みです。
「追加」ボタンをクリックするだけで、自動的に1行ずつ記録されていきます。
フォームを表示するマクロを作成する
作成したユーザーフォームは、マクロを使って簡単に呼び出せます。
次のように標準モジュールに記述してください。
Sub ShowForm()
UserForm1.Show
End Sub
このマクロをボタンに割り当てることで、クリックひとつで入力画面を表示できます。
ユーザにとっても、Excelの知識がなくても操作できるインターフェースになるのが魅力です。
実装するメリット
フォーム入力をマクロで自動化することで、次のようなメリットが得られます。
- 入力フォーマットが統一される
- 誤入力を防ぎやすくなる
- クリック操作だけでデータ追加ができる
- 入力者がExcelに詳しくなくても使える
- 将来的に印刷や集計への拡張も可能
業務上のデータ入力を「誰がやっても同じ結果にする」ためには、こうした仕組み化が効果的です。
特に複数人で同じファイルを使う場合、品質と作業時間のばらつきを減らすことができます。
まとめ
フォームを使ったデータ追加は、VBAの基本的な使い方でありながら、実務での効果が大きいテクニックです。
マクロを使えば、
「入力欄を整えて、決まった場所にデータを追加する」という作業が、誰でもワンクリックで実現できるようになります。
今回の仕組みをベースに、入力項目を増やしたり、バリデーション(入力チェック)を追加するなど、さらに発展的な使い方も可能です。
まずはシンプルなフォームから始めて、「Excelに強い仕組み」を少しずつ作っていきましょう。
