執筆:EugeneAmnis
ユーザーフォームでデータ入力
ユーザーフォームとはエクセルのプログラム言語である Visual Basic for Applications を使用して、1から作成したフォームの事を 言います。大変手間がかかりますが、フォームのカスタマイズだけでなく、独立したプログラムのように動かす事もできます。拡張子は “ xlsm “ になります。
また、プログラミングに興味のある人にとっては丁度良い学習の場とも言えます。Javaのようにオブジェクト指向のプログラミングには向きませんが、 マクロ機能で記録したコードを読み解く事ができる点と、日常の作業を自動化してみるという具体的な目標が設定し易いので、 実力をつけ易いメリットがあります。もし途中で投げ出しても他の言語と違い、仕事に活かし易い点もおすすめです。
仕事で vba を使用する事については保守性などのデメリットが発生するのは事実ですが、自分の作成したものが職場(IT関係ではない)で自然と 使用されるようになった時の感動は一生忘れないでしょう。
ユーザーフォームを作成する際の手順としては、
- フォームをデザインする。
- コーディングを行う。
となります。ここではインターネット上で比較的に情報の少ない ” Excel 2011 for Mac “を使用して説明します。 Mac版のエクセルはかなり癖が強いです。尚、Windows版でも作成する手順はほぼ同じです。
ユーザーフォームの機能
テキスト | 数字 | カラー |
---|---|---|
テキスト入力 | 数値のみ入力 | リスト入力 |
上記の表に入力するフォームを作成します。入力すると自動的に表の一番下にレコード(データ)が挿入されるようにします。ユーザーフォームの 基礎を示すだけなので、最小の機能にします。
フォームをデザインする。
1.“開発”タブの”エディター”を選択し、プロジェクトウィンドウを開く。
2.” VBAProject (ファイルの名前)“を左クリックし、”挿入” > “ユーザーフォーム” を選択。
3.プロジェクトに”フォーム/UserForm1”が追加され、ファイルの名前がついたユーザーフォームのウィンドウが表示される。
4.“メニューバー” > “表示” > “ツールパレット”を選択。
5.“ツールパレット”の”ラベル”を選択し、台紙上にドラッグして設置する。
6.設置したラベルを左クリックし、”プロパティ”を選択。
7.プロパティの”オブジェクト名”と”Caption”をQ1に変更する。(入らない場合は17.を参照)
8.“Font”の”…“を選択。
9.“フォント”ダイアログで”サイズ”を14にして、”OK”を選択。
10.“TextAlign”を1-fmTextAlignLeft(左揃え)にする。ラベルのプロパティを閉じる。
11.“ツールパレット”の”テキストボックス”を選択し、台紙上にドラッグして設置する。
12.プロパティの”オブジェクト名”をA1に変更する。
13.ラベルQ1とテキストボックスA1を選択し、コピー&ペーストする。位置を揃え、7.と12.のようにQ2,A2と変更する。
14.ラベルをコピー&ペーストし、Q3に変更する。”ツールパレット”の”リストボックス”を選択し、台紙上にドラッグして設置する。 プロパティの”オブジェクト名”をA3に変更する。
15.“ツールパレット”の”コマンドボタン”を選択し、台紙上にドラッグして設置する。
16.プロパティの”オブジェクト名”をsetup、”Caption”を設定に変更する。 “フォント”ダイアログで”サイズ”を14にして、”OK”を選択。(Mac版ではバグの為、Captionを中央にする事はできません。)
17.コマンドボタンをコピー&ペーストし、プロパティの”オブジェクト名”をentity、”Caption”を書き込みに変更する。 入りきらない場合は台紙のプロパティの”Height”の値を変更する。(Mac版では台紙をドラッグして大きさを変更する事ができません。)
18.確認する為、”メニューバー” > “実行” > “Sub/ユーザーフォームの実行”を選択。
19.確認する。
今回はここまでです。次回は各オブジェクトのイベント毎にコーディングしていきます。
図付きなので長くなってしまいましたが、3項目で設定する内容が多い事が実感していただけたでしょうか? これがユーザーフォームの自由度を表しているとも言えます。