Excel VBAユーザーフォームの作り方|入力ミスを防ぐ画面を作ろう

こんにちは。
今回は Excel VBAのユーザーフォームについて解説します。

Excelでデータ入力をしていると、こんな経験はありませんか?

  • 行を間違えて入力してしまう
  • 間違えて既存データを上書きする
  • 入力ルールが人によってバラバラになる

私の職場でも、Excelのセルに直接入力していた頃はこのようなミスがよく起きていました。

そこで作ったのが VBAのユーザーフォームです。
入力専用の画面を用意することで、入力ミスがかなり減りました。

今回は

  • ユーザーフォームとは何か
  • 基本的な作り方
  • 使いやすいフォームにするコツ

を、実務目線で紹介していきます。
※この記事は作業画像のないシンプルな文章がメインの記事となります。


ユーザーフォームとは?

ユーザーフォームとは、簡単に言うと

Excelの中に作る入力画面

です。

例えばこんなイメージです。

氏名 :[      ]
部署 :[      ]
数量 :[      ]    [登録]

セルに直接入力する代わりに、
この画面から入力して ボタンでデータを登録する仕組みを作ります。

ユーザーフォームを使うメリットは主に次の3つです。

① 入力ミスを防げる

入力する場所が決まるため

  • 行ズレ
  • 上書きミス

などを防ぐことができます。


② 操作が分かりやすくなる

「ここに入力して登録ボタンを押す」

という流れになるため、
Excelに慣れていない人でも使いやすくなります。


③ Excelを簡易システム化できる

ユーザーフォームを使うと
Excelが 簡単な業務システムのような形になります。


VBAユーザーフォームの作り方

ユーザーフォームは次の手順で作成できます。

① VBAエディタを開く

Alt + F11

を押すとVBAエディタ(VBE)が開きます。


② ユーザーフォームを挿入する

メニューから

挿入 → ユーザーフォーム

を選択します。

するとフォームの画面が表示されます。


③ コントロールを配置する

ツールボックスから次のような部品を配置します。

よく使うものはこのあたりです。

コントロール用途
Label項目名
TextBox入力欄
CommandButtonボタン

例えば

  • 氏名入力 → TextBox
  • 登録ボタン → CommandButton

という形で配置していきます。


フォーム作成で必ずやるべきこと

ユーザーフォームを作るとき、
必ずやっておいた方がいいことがあります。

それは

コントロールの名前を変更すること

です。

初期状態では

CommandButton1
TextBox1

のような名前になっています。

このままだと後でコードを書くときに

「これ何のボタンだっけ?」

となりがちです。

例えば次のように変更しておくと分かりやすくなります。

コントロール名前
登録ボタンbtnRegister
氏名入力txtName

こうしておくとコードを読んだときに

何の処理か一目で分かるようになります。


使いやすいフォームにするデザインのコツ

ユーザーフォームは少し工夫するだけで
かなり見やすくなります。

個人的に意識しているポイントを紹介します。


① 項目を詰め込みすぎない

フォームは

少し余白を空けた方が見やすくなります。

項目同士を詰めすぎると
入力する側が少しストレスを感じます。
実務で使う際に誤クリックの抑制にもつながります。


② 色は使いすぎない

VBAのフォームは色をつけすぎると
逆に見づらくなることがあります。

おすすめは

  • 基本はグレー
  • ボタンだけ色を付ける

くらいのシンプルなデザインです。


③ Tabキーで移動できるようにする

ユーザーフォームでは
Tabキーで入力欄を移動できる設定があります。

これは

TabIndex

というプロパティで設定できます。

入力順に番号を並べておくと
キーボードだけでスムーズに入力できます。
マウスを使うことなくさくさく進めるのは有り難いですよね。


VBAは今でも役に立つ?

最近は

  • Python
  • ノーコードツール

なども増えてきています。

ただ、VBAには大きな強みがあります。

それは

Excelさえあればどの会社でも動くこと

です。

新しいツールを導入できない環境でも
VBAならすぐに業務改善できることが多いです。

【重要】ツールの導入は慎重に!
業務効率化のために新しいツールを試したくなる気持ちはよく分かります。しかし、会社のPCは自分だけのものではありません。不用意なインストールはシステム全体の脆弱性になるリスクがあります。

「これ、便利そう!」と飛びつく前に、まずはシステム部門への申請が必要かどうかを確認しましょう。


トラブルが起きたときの対処法

ユーザーフォームを作っていると

  • ボタンを押しても動かない
  • 想定と違う動きになる

ということがあります。

そんなときは

MsgBoxで処理を確認する

のがおすすめです。

例えば

MsgBox "ここまで処理が来ました"

のように途中に入れていくと

どこで止まっているか確認できます。

地味ですが、この方法が一番確実です。


まとめ

VBAのユーザーフォームを使うと

  • 入力ミスを減らせる
  • 操作が分かりやすくなる
  • Excelを簡易システム化できる

といったメリットがあります。

最初は少し難しく感じるかもしれませんが、
一度作れるようになると 業務改善の幅がかなり広がります。

ぜひ小さなフォームから作ってみてください。

コメント

タイトルとURLをコピーしました