マクロの実行でしばしば目にするユーザーフォーム、VBA でユーザーフォームを作る方法を学びます。
ユーザーフォームを作る流れ
マクロ付のエクセルファイルか、あるいはマクロが付いていないエクセルファイルのいずれかを開き、VBE を起動する。
メニューの「挿入」から「ユーザーフォーム」を選択すると、新しいユーザーフォームが追加される。
空のユーザーフォームが追加される。
これに合わせて、プロジェクトツリーには「フォーム」フォルダーが追加され、「UserForm1」ファイルが表示される。
プロパティウィンドウには、作成された「フォーム」のオブジェクト名、Height(高さ)、Left(左端からの位置)その他などの詳細が表示される。
「ツールボックス」には、追加する要素が詰まっている。
追加されたばかりのフォームのサイズを、高さ(height)188 ポイント、幅(width)324 ポイント、にする。この値は、いつでも変更可能です。
その方法は、追加されたフォームを選択し、左側に表示される「プロパティ」ウィンドウで、「height」「width」の項目の数字をクリックしてそれぞれの値を直接変更入力するとよい。
このあと詳細を追加・編集を進めるが、これまでの変更を保存しておく。
マクロ付ブックで「フォーム」を追加した場合は「上書き保存」にて、または Excel ファイルに「フォーム」を追加した場合は「名前を付けて保存」にて「マクロ付ブック(*.xlsm)」の種類と名前を「フォーム作成練習」等として、保存する。
以降、適時「上書き保存」にて保存しながら作成を進めましょう。
フォームの要素は「ツールボックス」から選び、サイズを指定して追加する。
其の要領は、① まずツールボックスで要素を選択する
② 次にフォーム上の追加位置で「クリック」する
③ その場に要素が編集可能となって、追加される
④ 空クリックすると、確定される
もう一度クリックすると再度編集可能となる
今回は、「ラベル」「テキストボックス」「チェックボックス」「コマンドボタン」を追加してみる。
①「ツールボックス」で「ラベル」をクリックする
② フォームの上で追加する箇所をクリックすると、「ラベル」が追加される。
(枠線が表示され)編集可能状態だ。
③ コンテンツ以外の所で(空の)クリックをすると、確定される。
「ラベル」上で再度クリックしてすると選択状態となり編集が可能となる。
以降の部品についても同様の操作で設置可能だ。
テキストボックスは、今回は使わないので、追加したテキストボックスを削除しておく。削除するには、
① 削除する「テキストボックス」を選択する
➁ キーボードの「Delete(削除)」キーを押す
「チェックボックス」とは、その項目が選択されているか、されていないかを入力する場合に使う。
今回、チェックボックスは、下表に示すように、多数(計 18 個)作成する。
最終形の文字表示(Caption)、高さや幅のサイズ(Height、Width)、配置位置(Left、Top)は、以降の「最終的フォーム」項目を参照する。
チェックボックスのサイズと配置位置
オブジェクト名 | Caption | Left | Top | Height | Width |
---|---|---|---|---|---|
CheckBox1 | A班 | 18 | 26 | 18 | 68 |
CheckBox2 | B班 | 18 | 46 | 18 | 68 |
CheckBox3 | C班 | 18 | 66 | 18 | 68 |
CheckBox4 | D班 | 18 | 86 | 18 | 68 |
CheckBox16 | 学習会 | 18 | 120 | 18 | 68 |
CheckBox5 | HP講習会 | 90 | 26 | 18 | 68 |
CheckBox6 | テキストWG | 90 | 46 | 18 | 68 |
CheckBox7 | 機器WG | 90 | 66 | 18 | 68 |
CheckBox8 | 広報WG | 90 | 86 | 18 | 68 |
CheckBox17 | お楽しみクラブ | 90 | 120 | 18 | 68 |
CheckBox9 | 運営委員会 | 162 | 26 | 18 | 68 |
CheckBox10 | 四役会 | 162 | 46 | 18 | 68 |
CheckBox11 | 世話人会 | 162 | 66 | 18 | 68 |
CheckBox12 | 総会 | 162 | 86 | 18 | 68 |
CheckBox18 | イオン | 162 | 120 | 18 | 68 |
CheckBox13 | 希望の家 | 234 | 26 | 18 | 68 |
CheckBox14 | カルガモの会 | 234 | 46 | 18 | 68 |
CheckBox15 | 生活支援C | 234 | 66 | 18 | 68 |
※ オブジェクト名「CheckBox(n)」:追加するごとに番号(n)が割り振られるが、移動で番号が変わったり削除で番号が欠番となることもある。 必ずしもオブジェクト名 CheckBox(n) と表示名(Caption)の組み合わせがここに示すようになっていなくとも問題は無い。 |
始めに、① 高さ(Height)18 ポイント、幅(Width)68 ポイントの CheckBox1 を作り(追加し)、
➁ CheckBox1 の配置位置を、左辺(Left)から 18 ポイント、上辺(Top)から 26 ポイントに指定する
③ 追加された CheckBox1 をクリックして選択し、コピー(「Ctrl」+「C」キー)する
④ 必要な数(17)、計18個)だけ、貼り付け(「Ctrl」+「V」キー)る
⑤ 貼り付けられた CheckBox(n) を順次選んで、配置位置(Left、Top)を指定する
⑥ 表示名(Caption)を順次変更する
⇩
⇩
チェックボックスの初期設定で、チェックが入った状態「オン」にしておくには、プロパティの「Value」を「True」にする。
この設定を「学習会」「お楽しみクラブ」「イオン」に設定しておく。
「コマンド」ボタンは、(Caption を)「OK」や「閉じる」などと表示し、ボタンを押すことで特定の操作を行うようにできる。
① フォーム上の全要素を(「Ctrl」+「A」キーで)選ぶ
②「プロパティ ウィンドウ」にて「Font」を選択し、右端の「...」をクリックする
③「フォントダイアログ」で「Meiryo UI」を選び、「OK」をクリックする
以下のフォームは、この後作成する「MyPasoCalendar マクロ」で使用予定のフォームで、個人が希望するイベントを抽出してカレンダーを作る際の、抽出イベント項目を設定するのに使用するフォームです。
フォームの作り方が分かった今の段階で当フォームを作成しておきます。
使用している要素は「ラベル」「チェックボックス」と「コマンドボタン」です。
「ラベル」の表示(Caption)は「抽出するカレンダーイベント(複数可)」、
「チェックボックス」の表示(Caption)も、カレンダーのイベント名に、
「コマンドボタン」の表示(Caption)も、「OK」に、それぞれ変更します。
数が多いですが、要素のコピー・貼り付けを活用しましょう。
グリッドあるいはプロパティウィンドウに表示される位置(Left / Top)情報で、縦横の並びを、またサイズ(Height / Width)情報で、高さと横幅を、調整します。
チェックボックスのサイズと配置位置
オブジェクト名 | Caption名 | Left | Top | Height | Width |
---|---|---|---|---|---|
CheckBox1 | A班 | 18 | 26 | 18 | 68 |
CheckBox2 | B班 | 18 | 46 | 18 | 68 |
CheckBox3 | C班 | 18 | 66 | 18 | 68 |
CheckBox4 | D班 | 18 | 86 | 18 | 68 |
CheckBox16 | 学習会 | 18 | 120 | 18 | 68 |
CheckBox5 | HP講習会 | 90 | 26 | 18 | 68 |
CheckBox6 | テキストWG | 90 | 46 | 18 | 68 |
CheckBox7 | 機器WG | 90 | 66 | 18 | 68 |
CheckBox8 | 広報WG | 90 | 86 | 18 | 68 |
CheckBox17 | お楽しみクラブ | 90 | 120 | 18 | 68 |
CheckBox9 | 運営委員会 | 162 | 26 | 18 | 68 |
CheckBox10 | 四役会 | 162 | 46 | 18 | 68 |
CheckBox11 | 世話人会 | 162 | 66 | 18 | 68 |
CheckBox12 | 総会 | 162 | 86 | 18 | 68 |
CheckBox18 | イオン | 162 | 120 | 18 | 68 |
CheckBox13 | 希望の家 | 234 | 26 | 18 | 68 |
CheckBox14 | カルガモの会 | 234 | 46 | 18 | 68 |
CheckBox15 | 生活支援C | 234 | 66 | 18 | 68 |
※ オブジェクト名「CheckBoxN」:追加するごとに番号が割り振られるが、移動で番号が変わったり削除で番号が欠番となることもある。 必ずしもオブジェクト名とCaptionの組み合わせがここに示すようになっていなくとも問題は無い。 |
作業の最後に、「上書き保存」にて保存しましょう。
再度ですが、保存されたファイル名は「フォーム作成練習」、ファイルの種類は「マクロ付ブック(*.xlsm)」です。
当ページで作成したフォームでのマクロの設定は、次の「K2. フォームのマクロ」を参照する。