HOME BBS A B C D E F G H
1


「BakuJAN活用例」の解・体・親・書

親愛なる貴方のために・・・え?誰?

4.メニュー画面のボタンデザイン

 [ 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関数 ]を使って表示形式を設定できます。

 

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Microsoft(R) Excel、Microsoft Visual Basicは米国Microsoft Corporationの米国およびその他の国における登録商標または商標で、Microsoft Corporationのガイドラインに従って画面写真を使用しています。