入力フォームの作成
ここからは入力作業の簡便化を行なうために入力フォームを作成
し、そのフォームに入力されたデータをエクセルシートへ書込みを行なう方法について説明して参ります。
まず手始めに生徒の成績(数学、国語、英語の点数)の入力作業について行なうことと致します。
まあこの程度の入力作業はマクロを組むまでではないかと考えますがこれが基礎となります。
1.エクセルファイルの準備:
1)新規にエクセルファイルを作成しましょう。
名前を「演習2.xlsm」(マクロ有効ブック )とします。
2)エクセルシートに表を次のように準備する。
2.入力フォームの作成:
1)コードウィンドウを開きます。
①シート名を右クリックしますとメニューが表示されますので「コードの表示」を選択します。
②マクロを作成するコードウィンドウが表示されます。
③コードウィンドウの左上に「ユーザーフォームの挿入」がありますので、ここをクリックしますとユーザーフォームが挿入されます。
④ユーザーフォームと同時に「ツールボックス」も表示されているはずです。
「ツールボックス」が表示されていなければ、上のタブに「ツールボックス」の表示・非表示切替えボタンがありますのでクリックして表示させてください。
⑤ユーザーフォームの大きさの変更:
ユーザーフォーム外周の□を
ドラッグして移動させればユーザーフォームの大きさを変えることができます。
右下角の□をドラッグして右斜め下方向に移動させユーザーフォームを拡張して
おいてください。
4)ツールボックスのコントロールをユーザーフォーム上への配置:
ツールボックスに表示されているものを総称してコントロールといいます。これらをユーザーフォーム上に配置して入力フォームを作成致します。
各コントロール
にカーソルを移動させるとそれぞれの名称が表示されます。
例えばテキストボックスに移動させるとテキストボックスと表示されます。
主として使用されるコントロールは「ラベル」、「テキストボックス」、「コンボボックス」、「リストボックス」、「コマンドボタン」の五つのコントロール
かと思います。
それぞれの働きは大まかに言って次のようになります。
①「ラベル」:ユーザーフォーム上に文字を書く場合に使用します。
②「テキストボックス」:データを入力する場合に使用。
③「コンボボックス」:事前に登録されたものを読み込みリストを表示させますが、
テキストボックスと同様に文字を書き込むことも可能です。
④「リストボックス」:事前に登録された表をリストとして表示します。
⑤「コマンドボタン」:今回はユーザーフォーム上に配置されたコントロールに入力された
データをエクセルシートに転送したり、エクセルに表示されているユーザーフォームを
非表示にしたりする場合に使用します。
では実際にコントロールを配置してみましょう。
例えば「テキストボックス」をユーザーフォーム上に配置する場合、カーソルをツールボックスのテキストボックスに移動させ、クリックします。
次にユーザーフォーム上にカーソルを移動させるとカーソルのポインターが十字に変化しますので、配置したい位置でクリックし適当な大きさまでドラッグする
とコントロールが貼り付けられます。
配置されたコントロールの大きさ、位置の調整はエクセルシートに貼り付けられた図形の操作方法と同じ操作で行うことができます。
コントロールの外周に□が表示されている状態を今後「選択
状態」といいます。
5)下記のコントロールを貼り付けてゆきます。
入力日時(発行日):テキストボックス
採点月:テキストボックス
生徒名:テキストボックス
数学点数:テキストボックス
国語点数:テキストボックス
英語点数:テキストボックス
備考:テキストボックス
コマンドボタン:上記のテキストボックスに書き込まれたデータをクリックした時に
エクセルシートに書き込みを実行させる場合に使用
ラベル:ユーザーフォーム、各テキストボックスの表題を表記するために使用
下図のようにテキストボックス、ラベル、コマンドボタンのコントロール配置してゆきます。
【参考】
コントロールの貼付け、移動、大きさの調整などの操作途中、例えばコントロールを間違えて
ダブルクリックした場合などに画面が下図のように切り変わる場合があります。
その場合には左側のプロジェクトの「UserForm1」をダブルクリックするとユーザーフォームの画面に戻すことができます。
プログラムを作成する場合にユーザーフォーム、テキストボックスなどのコントロールの末尾の番号でコントロールの識別が行なわれます。
この識別番号は貼り付けた順の通し番号となります。
従ってここでは、下図と全く同じ番号の配列に合わせてください。
配列が異なっていれば、今後の説明のなかで番号の書き換えを行なわなければならなくなり
煩雑になりますので番号の配列を同じにしていてください。
但し、今回はラベルに関しては各テキストボックスの表題表記のみでプログラム内で使用しないので無視して構いません。
皆様が今後自分のマクロを組む上ではどのような配列でも問題ありません。
識別番号の確認は、下図のプロパティの上部に表示されています。
例えばテキストボックス3のコントロールをクリックすると「選択状態」となり、そのコント
ロールの「プロパティ」が表示されます。
6)各ラベルにコントロールの表題を下図のように表記します。
表記の仕方:例えば「Label8」の「採点結果入力フォーム」の場合
①ラベル8をクリックし、選択状態します。
②プロパティにラベル8のプロパティが表示されています。
③プロパティの表中の「Caption」を選択します。
④右側の「Label8」を消して「採点結果入力フォーム」と書き込みます。
⑤このフォームの表題なので、見た目が良いように文字サイズ、フォントなどの設定を行ないましょう。この設定は「Font」で行ないます。
「Font」を選択すると右端にが表示されます。このをクリックするとフォント、スタイル、サイズの設定画面が表示されます。
ここではスタイルを「太字」、サイズを「14」としてみました。
⑥文字の色を変えてみましょう。
「Font」の下の段の「ForeColor」で行ないます。項目「ForeColor」を選択すると右端に「▼」が表示されますので、クリックしパ
レットを選択します。
ここではパレットの「青色」を選択しました。
文
字がラベルの枠をはみ出しています。外周の□をドラッグして、文字が完全に表示されるよう拡張ください。文字のサイズに対して外枠が大きすぎて調整したい
ときにはタブの「書式」をクリックし、メニューの「サイズを合わせる」を選択すると文字サイズに合わせた外枠に調整できます。
他のラベルを同様に以下のように書換えください。
7)コントロールの整列のさせかたの説明:
ここではテキストボックスの列びを凸凹にさせています。
基本的にはエクセルに貼り付けられた図の整列と同じです。
①整列させたいテキストボックスを一括して選択状態にする。
各テキストボックスの外周に□、または■が表示されています。
この□のテキストボックスが基準となり整列されます。
②「書式」の「整列」で入力日時のテキストボックスの左揃えにします。
③次にラベルの整列を行ないましょう。
④ラベルをドラッグして一括して選択状態にします。
⑤先ほどの「書式」の「サイズを合わせる」でサイズ合わせします。
⑥ラベル「入力日時」をドラッグしてテキストボックスの良い位置に移動させる。
⑦テキストボックスが基準となるようテキストボックスの方からドラッグし、ラベルと一緒に選択状態とする。
⑧「書式」の「整列」の上下の「中央」を選択する。
⑨入力日時ラベルからドラッグしてラベルを一括選択状態にする。
⑩「書式」の「整列」の「左揃え」を選択する。
⑪それぞれのラベルと対のテキストボックスを中央揃えさせることによりまずまずの見かけで整列させることができます。
コントロールの「Font」、「ForColor」のプロパティの説明を行ないましたが、次ページでその他のプロパティについて説明を行ないます。