Excel VBAでデータ入力フォームを作成する方法【初心者向け3ステップ完全ガイド】
ExcelでVBAを活用していると、多くの方がデータ入力フォームの作成でつまずく経験をします。本記事では、VBAを使ってExcelに見栄えが良く使いやすいデータ入力フォームを作成する方法を、わかりやすく解説します。
Excel VBAでデータ入力フォームを作る3つの簡単ステップ
ここでは、Washington(ワシントン)・New York(ニューヨーク)・California(カリフォルニア)という3つのワークシートを用意しました。これらには、銀行の3つの支店の顧客の氏名・連絡先・年齢・性別のデータが登録されています。
今回の目標は、VBAを使用してこのデータベースに新しいデータを入力できるフォームを作成することです。以下の2つのステップで進めていきます。
- まず、新しいデータを入力するためのユーザーフォーム(UserForm)を作成します
- 次に、フォームを開くためのボタンをワークシートに配置します
ステップ1:VBAでユーザーフォームを作成する
このステップはやや長い工程になるため、理解に時間がかかるかもしれません。確実な結果を得るために、以下の手順に慎重に従って進めてください。
- キーボードでALT + F11を押し、Visual Basic(VBE)ウィンドウを開きます。
- Visual Basicウィンドウのツールバーから挿入 > ユーザーフォームを選択します。UserForm1という新しいユーザーフォームが表示されます。
- まず、ツールボックスからラベル(Label1)をドラッグして、ユーザーフォームの左上に配置します。ラベルの表示名を「ワークシート」に変更してください。
- 続けて、リストボックス(ListBox1)をLabel1の右側にドラッグします。
- 次に、データセットの列数と同じ数のラベル(この例では4つ)をユーザーフォームの左側にドラッグします。各ラベルの隣にテキストボックスを1つずつ配置します。
- 各ラベルの表示名を、データセットの列見出し(顧客名・連絡先・年齢・性別)に変更します。
- 最後に、コマンドボタン(CommandButton)をユーザーフォームの右下にドラッグし、ボタンの表示名を「Enter Data(データ入力)」に変更します。
- リストボックスをダブルクリックすると、ListBox1_Clickというプライベートサブプロシージャが開きます。そこに以下のコードを入力します。
⧭ VBAコード:
Private Sub ListBox1_Click()
For i = 0 To UserForm1.ListBox1.ListCount - 1
If UserForm1.ListBox1.Selected(i) = True Then
Worksheets(UserForm1.ListBox1.List(i)).Activate
End If
Next i
End Sub
- 次に、コマンドボタンをダブルクリックすると、CommandButton1_Clickというサブプロシージャが開きます。以下のコードを入力しましょう。
⧭ VBAコード:
Private Sub CommandButton1_Click()
Total_Rows = ActiveSheet.UsedRange.Rows.Count
Total_Columns = ActiveSheet.UsedRange.Columns.Count
Active_Column = 1
For Each Ctrl In UserForm1.Controls
If TypeName(Ctrl) = "TextBox" Then
ActiveSheet.UsedRange.Cells(Total_Rows + 1, Active_Column) = Ctrl.Text
Active_Column = Active_Column + 1
End If
Next Ctrl
End Sub
- 最後に、ツールバーの挿入 > 標準モジュールを選択してクリックします。
- Module1という新しいモジュールが挿入されるので、以下のコードを入力します。
⧭ VBAコード:
Sub Run_UserForm()
UserForm1.Caption = "Data Entry Form"
UserForm1.ListBox1.BorderStyle = fmBorderStyleSingle
UserForm1.ListBox1.ListStyle = fmListStyleOption
For i = 1 To Sheets.Count
UserForm1.ListBox1.AddItem Sheets(i).Name
Next i
Load UserForm1
UserForm1.Show
End Sub
これで完了です!データベースに新しいデータを入力するためのフォームが正常に作成できました。
あわせて読みたい: Excelにおけるデータ入力の種類(概要解説)
ステップ2:フォームを開くボタンを挿入する
ユーザーフォームを使ったデータ入力フォームの作成が完了したら、次はワークシートにフォームを開くためのボタンを追加します。以下の手順に従ってください。
- 画面上部のリボンから[開発]タブをクリックして開きます。[開発]タブはデフォルトでは非表示になっています。リボンに表示されていない場合は、事前に有効化しておきましょう。
- [開発]タブの[コントロール]グループにある[挿入]をクリックします。各種ツールが一覧表示されるので、左上のボタン(フォームコントロール)を選択します。
- ボタンをワークシートの任意の場所にドラッグして離すと、[マクロの登録]ダイアログボックスが表示されます。[マクロ名]欄にRun_UserFormを入力します。
- その後、[OK]をクリックします。
- 必要に応じて、ボタンの表示名を変更することもできます。ここでは「Enter New Data(新規データ入力)」に変更しました。
おめでとうございます!データ入力フォームを開くボタンの設置に成功しました。
さらに利便性を高めたい場合は、各ワークシートにそれぞれボタンを配置することも可能です。
あわせて読みたい: Excelでタイムスタンプを自動挿入する5つの方法
関連記事:
- WebフォームからExcelスプレッドシートへデータを転記する方法
- Excelでデータログを作成する2つの方法
- Excelで入力可能なフォームを作る5つの実例
ステップ3:完成したデータ入力フォームの動作確認
Excel VBAによるデータ入力フォームの作成と起動用ボタンの設置が完了しました。実際の動作を確認してみましょう。ワークシート上の「Enter New Data」ボタンをクリックします。
データ入力フォームが開きます。まず、新規データを入力したいワークシートを選択してください。
ここではNew Yorkを選択しました。ワークシートを選択した瞬間に、そのシートがアクティブになります。
- 続いて、入力したい残りのデータを記入します。ここではJennifer Marlo、444204240、26、Femaleと入力しました。
- 最後に「Enter Data」をクリックします。
新しいデータがデータベースの最終行に入力されていることが確認できます。
あわせて読みたい: ユーザーフォームを使わずにExcelのデータ入力フォームを作成する方法
注意点
- 新しいデータを入力する際、コードはユーザーフォーム上のテキストボックスの並び順に従って処理されます。そのため、ユーザーフォームにテキストボックスを追加する際は、データベースの列の順序と一致させるように注意してください。
まとめ
以上が、Excel VBAを使ってデータベース用のデータ入力フォームを作成する手順です。ご不明な点がありましたら、お気軽にお問い合わせください。今後も役立つ情報をお届けしていきますので、ぜひ当サイトをご活用ください。
関連記事
- Excelでオートフィルフォームを作成する方法(ステップバイステップガイド)
- ドロップダウンリスト付きデータ入力フォームの作成方法(2つの手法)
- Excelでデータ入力を自動化する2つの効果的な方法
- Excelセルへのデータ入力を制限する2つの簡単な方法
-
Excelでデータモデルを管理する方法【初心者向け5ステップ完全ガイド】
Excelでデータモデルを管理する方法を学びたいと思っていませんか?本記事では、Excelにおけるデータモデルの管理手順を、初心者の方にもわかりやすくステップごとに徹底解説します。この記事を読めば、データモデルの基本概念から実践的な活用方法まで、すべてをマスターできるでしょう。 より理解を深めたい方は、練習用のExcelワークブックをダウンロードして、実際に手を動かしながら学習することをおすすめします。 Excelのデータモデルとは? Excelのデータモデル(Data Model)とは、2つ以上のテーブルを共通のデータ項目(キー)で関連付けた特殊なデータテーブルの形式です。複数のシートや外部
-
Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説
先々の予定をしっかり立てたい方や、スケジュールが忙しい方にとって、Excelのカレンダーは非常に便利なツールです。この記事では、Excelで年間カレンダーを作成する手順を、詳しい解説とともにステップごとにご紹介します。ここで作成するカレンダーの最大の特徴は、動的かつインタラクティブであるという点です。つまり、年の数値を変更するだけで、カレンダーが自動的に更新されます。さらに、ExcelのVBAを使って月間カレンダーを作成する方法についても解説します。 練習用ワークブックは、以下のリンクからダウンロードできます。 Excelで年間カレンダーを作成する4つのステップ チュートリアルの詳細に入る前に