ユーザーフォームの作成

ユーザーフォームの作成に関するVBEでの操作解説

ユーザーフォームとは、VBAで作成できるExcelとは別のウィンドウを持つ画面のことです
ユーザーフォームを使用することで、ユーザービリティが格段に上昇するため、初心者のうちから使っていきたい機能です

ユーザーフォームの作成方法

ユーザーフォームモジュールの追加方法
ユーザーフォームモジュールの作成方法

ユーザーフォームは、シートや標準モジュール同様にユーザーフォームモジュールを作成することで処理の作成を行うことが出来ます

作成の方法は、標準モジュールと同様に挿入タブから「ユーザーフォーム」を選択するだけです

追加されたユーザーフォームモジュール
作成された初期状態

選択すると、「UserForm1」という名称のユーザーフォームが作成されます
ウィンドウ自体も自動的に作成され、このウィンドウが画面上に実際に表示されるものになります、原寸大サイズです。

コントロールの作成方法

ツールボックスと表示方法
ツールボックス(左)と表示方法

このフォーム上にコントロールを追加するには、ツールボックスという画面から任意のコントロールを選択して行います
基本的には、フォームの編集画面であれば表示されますが、もし表示されていない場合は表示タブの「ツールボックス」を有効にしてください

コントロールの作成方法
コントロールの作成の流れ

ツールボックスから追加したいコントロールを選択して、フォーム上でクリックするだけで初期状態のコントロールが作成されます

これは図形の作成要領と同じなので、作成段階でドラッグ操作を行えば大きさの指定も可能ではありますが、特にそこまでしなくてもいいとは思います

図形と同じ要領で、作成したコントロールはドラッグ操作で移動させることも可能です

コントロールのサイズ自動調整方法
コントロールのサイズ自動調整

コントロールには表示させる文字が設定できます
画像では、「ボタン」という文字列に設定しました
ですが、初期状態ではこの文字列に対してコマンドボタンが少し大きいのでサイズの調整を行います

選択枠の□をドラッグしてサイズ調整してもいいのですが、自動調整する方法があります

コントロールの選択枠の右3つの□の内、下2つのどちらかをダブルクリックすることで表示された文字列に合わせて自動的にサイズを調整してくれます
横幅だけでなく高さも調整してくれます

コントロールの自動位置調整方法
コントロールの位置も自動調整可能

複数のコントロールを作成して、適当に配置していくとどうしてもずれていってしまうことがありますので、その際は整えたいコントロールを複数選択して調整を行います

この際に調整の親となるのが1つだけ選択枠が白い□のコントロールが指定されます
最後に選んだものが親となるので、親にしたいコントロールをうまく選択してください

そのコントロール上で右クリックメニューの整列から任意の設定で整列させることができます
画像の例では、左揃えに指定しています

コントロールに処理を作成する方法

コントロールに処理を作成する流れ
任意のコントロールの処理を作成する流れ

作成したコントロールに処理を作成するには、コードを作成します
また、ユーザーフォームでは基本的にコントロールのイベントに対して処理を作成していきます

コントロールをダブルクリックすることで、既定のイベントが自動的に作成されます

画像の例では、コマンドボタンのClickイベントが作成されています
コマンドボタンがクリックされたときに発生するイベントです
このイベント名の前にあるのが、コントロールの名前になりますので、イベント作成後にコントロールの名前を変更した場合はここも修正する必要がありますので注意してください

既定以外のコントロールイベントの作成方法
既定のイベント以外の作成方法

コマンドボタンの既定のイベントはClickイベントでした
これ以外のイベントを作成するには、プロシージャボックスから作成したいイベントを選択します

選択したイベントにオブジェクト名も付与されてイベントプロシージャが自動的に作成されます

こうして1つのコントロールでも、ユーザーの行った動作で別の動きを発生させることが出来ます

ユーザーフォームのその他

プロパティウィンドウの画面
プロパティウィンドウ

少し前後しますが、フォームの大きさや名前など全ての設定はプロパティウィンドウで設定可能です

ここでは初期値の設定となります、ほとんどのプロパティはコード上で変更が可能になるので、フォームを起動してからでもコントロールの色や大きさは変更可能です

ユーザーフォームはExcelとは別のウィンドウを持ちますが、あくまでもExcelの中の機能であることに変わりは無いので、Excelを起動せずにフォームを表示するようなことはできません

またユーザーフォームは複数の同時起動が可能です
同じフォームは再起動されるだけですが、別のフォームを複数表示して大きな処理毎に画面を切り替えていくような作りにもできます

ユーザーフォームはシステム作成レベルのことが出来るにもかかわらず作成するのが非常に簡単です
コントロールの作成も、イベントの追加もマウス操作だけで完了してしまうからです

ユーザーフォームはレベルの高い機能ではありません
初心者でも十分に扱うことの出来る有効な機能なので簡単なことから使っていくようにしてみてください