トップページ > ソフトウェアの操作 > Excel でマクロを利用した専用の入力フォームで業務効率を図る方法
Excel でマクロを利用した専用の入力フォームで業務効率を図る方法
[初回公開] 2016年09月03日
Excel に文字や値を入力する場合はシート上のセルに打ち込むのが一般的だが、売り上げや業務報告、在庫管理など常に決まった内容を入力する場合は業務の効率化と入力値の統一化を図るためマクロで専用の入力フォームを用意する方法について紹介する。
このページの目次
1. マクロの入力フォームとは
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 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 の上部メニューより「表示 -> マクロ -> マクロの表示」を選択する。
「マクロの表示」を選択すると下図のように開いている Excel で利用できるマクロの一覧が表示される。
Visual Basic for Applications で設定したマクロ名「makuro」を選択してボタン「実行」をクリックすると作成した入力フォームが表示される。
3-5. 入力フォームの終了
起動した入力フォームを終了する場合は、ウィンドウの右側にある×ボタンをクリックすると入力フォームが閉じる。
キャンバス内にフォームを閉じる動作をプログラムを入れたボタンを設置して閉じることも可能である。
4. マクロの入力フォームの使い方
ここまでが独自に用意した専用の入力フォームの作成と起動の流れだが、まだテキストボックスに文字や値を入れてボタンを押しても何も処理しない状態である。
ここから、ボタンを押したときに各テキストボックスに入っているデータやチェックボックスなどで選択されているデータを特定のセルに上書きしたり、PDF やプリンタで出力させるなど用途に応じて処理のプログラムを記述していく。
関連記事
Windows に Python をインストールして実行する方法
プログラム
Python は AI やディープラーニングで利用されるプログラム言語で IT エンジニアの取得したいスキルの 1 つに挙げられており、まずは簡単な動作確認するために Python を Windows にインストールして実行する方法を紹介する。
内部結合(INNER JOIN)と外部結合(LEFT/RIGHT JOIN)の違い
プログラム
データベースの操作で結合(リレーション)と呼ばれる 1 回の参照で複数のテーブルの情報を合わせて表示する機能があり、結合方法として用意されている内部結合(INNER JOIN)と外部結合(OUTER JOIN)の使い方と違いについて解説する。
Mapbox の地図データをサイト内に埋め込む基本的な使い方
プログラム
ウェブサイトやブログに地図を埋め込む場合に無償または有償で提供されている地図サービスを利用できるが、いくつかある地図サービスの中から Mapbox の地図データをサイト内に埋め込む方法について紹介する。
Google Map API を使ってサイトに地図を埋め込む方法とキーの取得
プログラム
ウェブサイトやブログに地図を埋め込む際に無償または有償で公開されている地図サービスを利用することができるが、その中で Google Map をウェブサイトに埋め込む方法と利用にあたり必要なキーの取得について紹介する。
PHP で「Non-static method *** should not be called statically」が出る場合の対応方法
プログラム
PHP を利用しているとエラーログ等に「Non-static method *** should not be called statically」が表示されることがあり、このエラーが出る原因と対応方法について紹介する。