更新履歴 [2022年06月25日]「Wordpress で固定ページを作る方法と使い分け」を更新。

トップページ > ソフトウェアの操作 > Excel でマクロを利用した専用の入力フォームで業務効率を図る方法

Excel でマクロを利用した専用の入力フォームで業務効率を図る方法


[初回公開] 2016年09月03日

Excel に文字や値を入力する場合はシート上のセルに打ち込むのが一般的だが、売り上げや業務報告、在庫管理など常に決まった内容を入力する場合は業務の効率化と入力値の統一化を図るためマクロで専用の入力フォームを用意する方法について紹介する。

Excel でマクロを利用した専用の入力フォームで業務効率を図る方法

1. マクロの入力フォームとは

Excel に搭載されているマクロの機能を利用すると、処理を自動化するだけでなく下図のような専用の入力フォームを用意し、入力した文字や値をシート上のセルに入れることができる。

Excel のマクロで作成した入力フォームの例

マクロで作成できる入力フォームは大きさや入力フォームの数の他、ドロップダウンリストのような単一の選択型、複数の選択肢を入力させるチェックボックス型など自由度が高い。
マクロで入力フォームを用意する際には上図のように実際に画面に表示されるパーツの作成と、ボタンを押したときにどのような処理を実行させるかをプログラムする必要がある。

2. マクロで入力フォームを用意するメリット

マクロで入力フォームを用意するメリットとしては、「作業効率の向上」と「入力するデータの統一化」の 2 点が挙げられる。
1 点目の「作業効率の向上」においては、Excel で日々の業務で取り扱うデータを管理している場合に入力すべき項目がシート上に点在していると、入力箇所にカーソルを合わす手間が発生するが、マクロで専用の入力フォームを用意すると実際に書き込まれるデータが点在していても入力者は手間無く入力することができる。

2 点目の「入力するデータの統一化」においては、例えば「E12345678」が正しい製品の型番があったとして、入力者によっては「e12345678」と小文字になったり「E12345678」と数値が全角で入力されると、集計時にはそれぞれ別物として取り扱われるため正確な集計や計算ができなくなる。
そこで入力フォームに型番をドロップダウンリスト(プルダウン)で用意すると入力者はマウス操作で入力できるので操作の手間が軽減されるとともに、入力されるデータが全て統一されることになる。

3. マクロの入力フォームの作成方法

マクロの入力フォームを作成して利用できるようにするためには、実際に画面に表示させる入力フォームを用意し、ボタン等を押してデータの登録や集計といった処理をプログラムで記述する必要があり。
主に次の 5 つの流れとなる。

3-1. Visual Basic for Applications を開

マクロの入力フォームの作成を始め、入力フォームがのように画面に表示されるものがなくただ処理させるマクロを用意する場合でも Excel 仁搭載されている Visual Basic for Applications を開いて利用する。
Visual Basic for Applications を開くには、Excel の上部メニューより「開発 -> Visual Basic」を選択する。

「開発 -> Visual Basic」を選択

上部メニューにタブ「開発」が無い場合は、「ファイル -> オプション -> リボンのユーザー設定」で上部メニューに「開発」が表示されるようにしておく。
Visual Basic を選択すると下図のように左側にプロジェクトとプロパティ、右側に実際にマクロを記述したりフォームを作成する Visual Basic for Applications の画面が表示される。

Visual Basic for Applications を開いた様子

3-2. 入力フォームの作成

Visual Basic for Applications の画面が表示されれば、まず入力フォームを作成するため左上のプロジェクトのツリー欄から VBAProject(Book1) を右クリックし、表示されるメニューより「挿入 -> ユーザーフォーム」をクリックする。

「挿入 -> ユーザーフォーム」をクリック

ユーザーフォームをクリックすると下図のように左側のプロジェクト欄に「フォーム」が追加され、画面右側にはフォームの基本となるキャンバスが表示される。

ユーザーフォームのキャンバスが表示

次にウィンドウ「ツールボックス」内にあるテキストボックスをクリックしてフォームのキャンバス上の任意の場所をマウスでドラッグするとテキストボックスが設置される。
一度設置したテキストボックスの大きさや位置は後から変更することが可能である。

テキストボックスをキャンバスに設置

テキストボックスをもう一つ追加したい場合はもう一度ウィンドウ「ツールボックス」内のテキストボックスを選択してキャンバス上をマウスでドラッグすると追加できるとともに、既に設置しているテキストボックスを Ctrl + C でコピーし、Ctrl + V でペーストして複製することも可能である。

また、キャンバス上にボタンを設置する場合はウィンドウ「ツールボックス」のボタンを選択してテキストボックスを設置したときと同様にキャンバス上をマウスでドラッグする。

ボタンをキャンバスに設置

キャンバスに設置したボタンに記載されている名称を変更したい場合は、ボタン上の文字をダブルクリックして文字を変更するか、左側のプロパティ内の Caption の値を変更すると表記が切り替わる。

ボタンの表記を変える

このようにマクロで専用の入力フォームを作成する場合はウィンドウ「ツールボックス」にあるパーツをキャンバス上に配置して作成していく。

3-3. 入力フォームをマクロとして認識させる

前述で作成した入力フォームを作成しただけではマクロとして Excel で利用することはまだできず、利用できるようにするためにはマクロとして認識させる必要がある。
まず、Visual Basic for Applications の左上のプロジェクトのツリー欄に作成した入力フォームの名称として UserForm1 があるためこれをクリックして、その下に表示されるプロパティのオブジェクト名を macroForm に変更する。

オブジェクト名を変更

次に、同じく Visual Basic for Applications の左上のプロジェクトのツリー欄から VBAProject(Book1) を右クリックし、表示されるメニューより「挿入 -> 標準モジュール」をクリックする。

「挿入 -> 標準モジュール」をクリック

標準モジュールをクリックすると画面右側にプログラムが記述できるウィンドウが表示されるため、次のプログラムを記載する。

マクロのプログラムを記述

Option Explicit

Sub makuro()
    macroForm.Show
End Sub

このプログラムは先ほど名前変更したフォーム「macroForm」を表示するだけのもので、このプログラムを実行するマクロの名称を「makuro」と規定しているものである。
プログラムの記述が終われば、Visual Basic for Applications の右上にある×ボタンで終了して通常の Excel の画面に戻る。

3-4. 入力フォームを起動

作成した入力フォームを Excel で起動して利用するためには Excel の上部メニューより「表示 -> マクロ -> マクロの表示」を選択する。

「表示 -> マクロ -> マクロの表示」を選択></p>

<p class=「マクロの表示」を選択すると下図のように開いている Excel で利用できるマクロの一覧が表示される。
Visual Basic for Applications で設定したマクロ名「makuro」を選択してボタン「実行」をクリックすると作成した入力フォームが表示される。

3-5. 入力フォームの終了

起動した入力フォームを終了する場合は、ウィンドウの右側にある×ボタンをクリックすると入力フォームが閉じる。
キャンバス内にフォームを閉じる動作をプログラムを入れたボタンを設置して閉じることも可能である。

4. マクロの入力フォームの使い方

ここまでが独自に用意した専用の入力フォームの作成と起動の流れだが、まだテキストボックスに文字や値を入れてボタンを押しても何も処理しない状態である。
ここから、ボタンを押したときに各テキストボックスに入っているデータやチェックボックスなどで選択されているデータを特定のセルに上書きしたり、PDF やプリンタで出力させるなど用途に応じて処理のプログラムを記述していく。

関連記事