1 |
親愛なる貴方のために・・・え?誰?
[ UserForm* ]の上に配置される[ CommandButton* ]の多くは、[ Captionプロパティ
]に、どのような処理を行うのか、例えば[ 終了 ]や[ 実行 ]などを表示してあります。
[
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関数 ]を使って表示形式を設定できます。
|