[ UserFormsコントロール ]と[ CommandButtonコントロール ]は、デフォルトで同じ配色になっていますが、 コマンドボタンコントロールは、盛り上がった装飾が成されているため、陰影によってボタンである事が分ります。 デフォルトのままだと無機質な感じがしますので、他のコントロールと組み合わせて、コマンドボタンをデザインしてみましょう。
-
★ 複数のコントロールを使って、コントロールをデザインする
[ メニュー画面 ]は、[ UserFormsオブジェクト ]の上に、[ MultiPageコントロール ]が乗っていて、 その上に[ Labelコントロール ]、そして[ CommandButtonコントロール ]が乗るという構成になっています。 [ UserFormsオブジェクト ] と[ Labelコントロール ]の[ BackColorプロパティ ]に紺色を設定し、 [ Labelコントロール ] の[ SpecialEffectプロパティ ]に、引数[ fmSpecialEffectSunken ](くぼんでいるような装飾)を設定しています。
メニュー画面など複数のコマンドボタンがある画面で、特定のコマンドボタンをユーザーに知らせたいときは、 コマンドボタンを乗せているラベルコントロールの色を紺から他の色へ変更する方法も良いでしょう。 また、デザインモード中はコントロールの[ Pictureプロパティ ]、マクロの実行時には[ LoadPicture関数 ]を使って、 ビットマップを設定することもできます。
番外4.
イメージコントロール以外にも、その表面に画像を持つことができるコントロールがあります。 コマンドボタンコントロールやラベルコントロールもその一つですが、デザイン時に[ Pictureプロパティ ]で設定してしまうと、 そのコントロールを含んだVBAマクロブックは、サイズが大きくなってしまいます。ワークシートやコントロールオブジェクトで画像を扱う場合、VBAマクロの実行中に[ LoadPicture関数 ]を使って、 必要に応じて読み込むようにした方が、ブックのサイズも小さくてすみ、メモリーの消費も抑えられます。
-
★ リストボックスコントロールの選択項目を使う
このコードは、リストボックス[ Lst_商品群 ]のリスト項目に表示された商品名をクリックすると、 その商品の画像を[ Dir関数 ]で探し、無ければ別のマクロブックにある画像を作成するマクロを実行し、 商品の画像が有れば、その画像をイメージコントロール[ Img_001 ]に表示します。
-
★ 複数の選択肢があるメッセージボックスを表示し、処理を分岐する
ユーザーとの小さい対話ですが、判断を促すメッセージボックスを表示して、ユーザーが押した[ Yes/Noボタン ]で 得られた[ MsgBox関数 ]の戻り値によって、他のマクロブックにある画像を作成するプロシージャを[ Runメソッド ]で実行しています。
-
★ コントロールに表示する数値の書式(桁カンマ区切り)を設定する
また、金額を表示するラベルコントロール[ Lbl003 ]の[ Captionプロパティ ]に、3桁ずつにカンマ区切りを入れる書式を設定しています。 ワークシートのセルに数量を表示する際、表示形式の設定があると見やすくなるのと同じで、ユーザーフォームに展開するコントロールにも、 [ Format関数 ]を使って表示形式を設定できます。
【関連する記事】