応募する

応募する

Tel.03-4500-9361 / 受付時間:平日10:00~19:00

こちらは全て株式会社エージェントゲートでの採用・募集となります。

エクセルで入力フォームを作成する方法|フォームを使うメリットを解説

エクセルには入力フォームという機能があります。Googleフォームはアンケートで見たことがある方は多いでしょう。入力フォームを使えば、データを入力してデータベースを作成する事ができます。

この記事では、入力フォームを作成する方法とフォームのメリットを解説します。データベースとは何かも解説しているので、ぜひ参考にしてください。

エクセルで入力フォームを作成する方法

さっそくエクセルで入力フォームを作成する方法を見ていきましょう。

入力フォームとは

そもそも入力フォームとは何を指す言葉なのでしょうか?わかりやすく例えるならば、入力欄のことで、その入力欄に記載した内容はデータベースの情報として格納されます。

よくWEBサイトで目にするフォームは、CSSや専用のエディターで作成されていますが、エクセルの入力フォームは少し仕組みが違います。アンケート回答に使われるようなWEBの入力フォームではなく、リストに表示するデータをカード形式にして閲覧する機能です。

エクセルでデータ入力をしていると、とても画面内に収まらない情報量の項目があります。

例えば、商品情報をまとめたファイルでは、商品名、定価、原価、原価率、発売開始日、担当部署、電話番号、材料名といったあらゆるデータを入力しなければならず、とても1ページ内に収まりません。そこでエクセルのフォーム機能を使いましょう。

作成の手順

入力フォーム作成の手順は、以下のステップを踏みます。

・リボンに「フォーム機能」を表示
・「その他のコマンド」をクリック
・「すべてのコマンド」を選択
・「フォーム」を選択
・「追加」をクリックして「OK」をクリック

まずはリボンに「フォーム機能」を表示

リボンというエクセルの機能をご存じでしょうか?エクセルの作業に必要なコマンドを瞬時に見つけられるものです。

これを使うと「フォーム機能」を瞬時に表示できますが、最新版のエクセルにはリボンが表示されないのでフォーム機能を設定する前に、まずはリボン機能を導入しなければなりません。まずは、ファイルのオプションから「リボンのユーザー設定」をクリックしましょう。

「すべてのコマンド」を選択

Excelのオプション画面を開いたら左側の項目から「すべてのコマンド」をクリックすると、「フォーム」という選択肢が出てきます。

「追加」をクリックして「OK」をクリック

「フォーム」を選んだら「追加」を選択してOKをクリックすると、リボンの設定は完了です。ここでは、ホーム画面に「新しいグループ」として表示されます。

フォームにデータを入力する

次は、実際にフォームにデータを入力していきましょう。まずはデータを入力したいセルを範囲選択します。表に見出しを設定している場合は、自然と入力フォームの項目(見出し)として認識されるので大変便利です。セルを範囲選択したら、新しいグループをクリックして、入力フォームを表示させましょう。

仮に、セルの選択の時点で、範囲でなく単体のセルを選んでしまうと、「リストまたは範囲選択のどの行に列見出しが含まれているかを特定できません。」というポップアップが表示されるので注意しましょう。

データを入力していく

表の見出し項目が自動的に反映されているので、順にフォームへデータを入力していきます。次の行へ移動したい場合は、入力フォーム右側の「新規」を選択しましょう。

基本の操作方法

次に、入力フォームの基本操作を解説します。データ閲覧時の行の移動は、「次を検索」か「前を検索」を押します。名前を見れば大体の予想は着くかもしれませんが、1つ上の行に移動する場合は、「前を検索」1つ下の行に移動する場合は「次を検索」をクリックしましょう。

フォーム内の項目、つまり列を移動する場合は、ショートカットキーを利用するのがおすすめです。次(1つ右)の項目へ移動する場合は「Tabキー」、1つ左の項目へ戻る場合は「Shiftキー」と「Tabキー」を同時に押しましょう。

フォーム機能でできることと注意点

フォーム機能は、データの一覧表示や修正、追加、削除ができます。セルを1つ1つ移動してデータを入力する方法もありますが、フォーム機能を使った方があらゆる面で効率的です。

セルの移動では思わぬ入力ミスが発生しがちですが、フォームを使えば、確定ボタンを押すまで内容が決定しないので、誤入力を防げます。

フォーム機能でできること

フォーム機能を利用すると、「フォームコントロール」という、便利な入力機能が使えるようになります。一般的には、VBAと呼ばれる、複雑なマクロによる処理を行わなければならないところを、フォームコントロールを使えば、下記のようにさまざまな処理ができるようになります。

・オプションボタン白丸のボタンが付いた複数の選択肢から、任意のボタンをクリックして選択する
選択したものは黒丸になる
・スピンボタン数値の上下を、三角ボタンのクリックで指定できる
・スクロールバー上下にスクロールするスクロールバー
・コンボボックス下向きの矢印をクリックすると、選択肢の一覧を表示できる
・リストボックス選択肢一覧の中から、任意の項目をクリックする
・チェックボックス複数の選択肢から任意のものにチェックマークを付けられる

フォーム機能を使う際の注意点

エクセルのフォーム機能を使う前に把握しておかなければならないのが、フォームの弱み、注意点です。ここでは、3つの注意点を解説します。

フォームから数値を修正できない

フォームに数式の結果の数値を入れていた場合の注意点です。フォームからは修正ができません。元のセルの方を修正しないと、フォームに入ったデータが修正できないので、注意しましょう。

表示可能な列の限界

いくら便利なフォームといえど、無限にデータを格納することはできません。まず、フォームに表示できるのは、32列分までです。それ以上列を増やす場合は、別途でフォームを用意しなければなりません。

新規追加の制約

もしも、リストの下にデータがあると、その1つ前の行までしか新規データを追加できません。

ツールバーにフォームへのショートカットを表示できる

クイックアクセスツールバーをご存じでしょうか?あらかじめ、実行する処理を組み込んでおくことで、いざ使いたい機能を即座に使用できるショートカット機能です。エクセル2016では、下記の手順で設定します。

まず、「ファイル」タブから「オプション」を選んで、「リボンのユーザー設定」をクリックしましょう。挿入したい位置の1つ前のタブを選んで「新しいタブ」を選択します。すると「新しいタブ」と「新しいグループ」が作成されるので、「すべてのコマンド」の「フォーム」を選ぶと、作成したグループ名を選んで追加しましょう。

ツールバーに「新しいタブ」という項目が表示されるので、「フォーム」というコマンドが作成されたか確認しましょう。

VBAで入力フォームを作成する方法

VBA(Visual Basic for Applications)という機能をご存じでしょうか?エクセルに搭載されているソフトで、簡単なプログラミングをすることで、任意の処理を実行できるというものです。わかりやすく例えるならば、エクセルでプログラミングをすることで、便利機能が使えるようになるといったものになります。

また、エクセルには「マクロ」という機能も搭載されており、これを使えば一度登録した操作を繰り返し使用できるようになります。

ここでは、「入力フォームに入力したデータを、ボタン押下時に該当セルへ転機させる処理」について見ていきましょう。

オブジェクト名を設定する

まず行うのは、各オブジェクトに名前を決める作業です。オブジェクトとは「モノ」を指す言葉で、わかりやすく例えるのであれば「パーツ」です。例えば「名前テキストボックス」「定価テキストボックス」「原価テキストボックス」といった名前になります。オブジェクト名は、英語でも日本語でも良いですが、一目見てわかりやすい名前をつけるのがポイントになります。一瞬でも「このオブジェクトは何を入力するために作ったのか」忘れてしまうと、100%効率化できているとは言えません。

コマンドボタンの内容を変更する

押下することで処理を実行できるボタンを、「コマンドボタン」といいます。自分の好きなように「登録」や「OK」「完了」といった名前に変更しましょう。

コードを入力してユーザーフォームを初期化する

いよいよコーディング作業の始まりです。フォームを右クリックして「コード表示」を選んでみましょう。コードの入力画面が出てきたら、下記のコードが表示されることを確認してください。

Private Sub UserForm_Initialize()
End Sub

次に、販売ステータスが「販売中」なのか「販売終了なのか」を選択できるコンボボックスを作成してみます。

Private Sub UserForm_Initialize()販売ステータスコンボボックス.AddItem “販売中”販売ステータスコンボボックス.AddItem “販売終了”End Sub

構文としては、オブジェクト名.AddItem”〇〇”といった形になります。いざ実行してみると、販売ステータスが「販売中」と「販売終了」を選べるようになりました。

OKボタン押下時の処理コードを入力する

次は、入力フォームを記入し終わって「OKボタン」を押下した時の処理をコードで表してみましょう。コードは下記のようになります。

Private Sub OKボタン_Click()’入力時の処理Worksheets(“Sheet1”).Cells(1, 1).Value = 商品名テキストボックス.TextWorksheets(“Sheet1”).Cells(1, 2).Value = 定価テキストボックス.TextWorksheets(“Sheet1”).Cells(1, 3).Value = 原価テキストボックス.TextWorksheets(“Sheet1”).Cells(1, 4).Value = 販売ステータスコンボボックス.TextEnd Sub

このコードを記述すると、OKボタンを押した時に各テキストを指定したシート(ここではSheet1)の最上部の行に入力する処理が実行できます。(1,1)(1,2)(1,3)といった数字は、(行,列)を指しているものです。

一見これで完成かと思うかもしれませんが、このままだとOKボタンを押した後も、入力フォームにデータが残ってしまいます。OKボタンを押す度に、フォームのテキストボックスを空にしなければなりません。初期化コードは下記のようになります。

Private Sub OKボタン_Click()’入力時の処理Worksheets(“Sheet1”).Cells(1, 1).Value = 商品名テキストボックス.TextWorksheets(“Sheet1”).Cells(1, 2).Value = 定価テキストボックス.TextWorksheets(“Sheet1”).Cells(1, 3).Value = 原価テキストボックス.TextWorksheets(“Sheet1”).Cells(1, 4).Value = 販売ステータスコンボボックス.Text’OKボタン押下後、ボックスの中身を空にする処理商品名テキストボックス.Text = “”定価テキストボックス.Text = “”原価テキストボックス.Text = “”販売ステータスコンボボックス.Text = “”
End Sub

ダブルクォーテーションマークを2つ置くことで、テキストボックスの中身を空にできます。しかし、ここで新たな問題が発生します。永遠に1行目にしか転記できないのです。転記するセルを下の行へズラしていく処理が必要です。この問題を解決するコードが下記のコードです。

Private Sub OKボタン_Click()’行をズラすための変数最終セル = Worksheets(“Sheet1”).Cells(Rows.Count, 1).End(xlUp).Row + 1’入力時の処理Worksheets(“Sheet1”).Cells(最終セル, 1).Value = 商品名テキストボックス.TextWorksheets(“Sheet1”).Cells(最終セル, 2).Value = 定価テキストボックス.TextWorksheets(“Sheet1”).Cells(最終セル, 3).Value = 原価テキストボックス.TextWorksheets(“Sheet1”).Cells(最終セル, 4).Value = 販売ステータスコンボボックス.Text’OKボタン押下後、ボックスの中身を空にする処理商品名テキストボックス.Text = “”定価テキストボックス.Text = “”原価テキストボックス.Text = “”販売ステータスコンボボックス.Text = “”
End Sub

まとめ

エクセルの入力フォーム機能を使うと、膨大な数のセル移動による効率の低下や、誤入力を防ぐといったことが可能です。

入力フォームは、手作業で設定しようとすると手間がかかるので、リボンマークの設定をしてショートカットできるようにしておくと、入力フォームを出すまでの時間が短縮されます。

ユーザーにとっても、シートの製作者からしても、双方にメリットのある便利機能です。