■ OptionButtonコントロールについて詳しく知ろう
前回に引き続き、ExcelエクセルにおけるUserFormユーザーフォームの解説です。
今回は、OptionButtonコントロールオブジェクトの解説です。
OptionButtonコントロール(オプションボタンコントロール)オブジェクト
あるグループの中から1つの項目が選択されているかどうかを表します。Frameコントロール内に配置すると、選択できるオプション ボタンは常にいずれか1つだけとなります
既定のプロパティ:Valueプロパティ
既定のイベント:Clickイベント
■ OptionButtonコントロールオブジェクトのプロパティ
・Accelerator:アクセスキー(任意の1文字)を設定します。設定したアクセスキーをAltキーと一緒に押すと、コントロールにフォーカスが移り、OptionButtonコントロールの状態を変更します。
(例)
OptionButton1.Accelerator = "a"
この例では、Alt+a押下でOptionButton1コントロールにフォーカスし、状態を変更するように設定します。 |
・Alignment:OptionButtonコントロール内におけるキャプションの位置を設定します。
0-fmAlignmentLeftでコントロールの左端に、1-fmAlignmentRight(既定値)で右端にキャプションを配置します。
・AutoSize:TrueでCaptionしている文字の大きさに合わせて、コントロールの大きさを自動調整します。False(既定値)でコントロールの大きさを固定します(自動調節しません)。
・BackColor:コントロールの背景色を設定します。背景色はRGB関数、整数、定数で指定することが可能です。コントロールの背景スタイルがFmBackStyleOpaqueになっている必要があります。
・BackStyle:コントロールの背景スタイルを設定します。0 - fmBackStyleTransparentで背景を透明に、1 - FmBackStyleOpaqueで背景を不透明にします。既定値は1です。
(例)
OptionButton1.BackStyle = fmBackStyleTransparent
この例では、OptionButton1コントロールの背景を透明にしています。 |
・Caption:コントロールに表示する文字列を設定します。
(例)
OptionButton1.Caption = "test"
この例では、OptionButton1コントロールに"test"の文字列を表示します。 |
・ControlSource:コントロールのValueプロパティにリンクさせるExcelワークシートのセル範囲を指定します。
(例)
OptionButton1.ControlSource = "a1"
OptionButton2.ControlSource = "a2"
この例では、OptionButton1コントロールのValueプロパティがA1セルにOptionButton2コントロールのValueプロパティがA2セルにそれぞれリンクしています。OptionButton1コントロールの初期値にA1セルの値がOptionButton2コントロールの初期値にA2セルの値がそれぞれ設定され、OptionButtonコントロールの選択を変更するとA1、A2セルの値も変わります。 |
・ControlTipText:マウスポインタをコントロール上に置いたとき、表示する文字列を設定します。
・Enabled:OptionButtonコントロールの場合、Trueで通常の表示と操作ができます、Falseで淡色表示となり、イベントに応答しなくなります。
・Font:コントロールで表示するテキスト属性を設定します。
・ForeColor:コントロールの前景色を指定します。OptionButtonコントロールの場合、表示されるCaptionの文字色を設定します。
・Height、Width:コントロールの高さ、幅をポイント単位で指定します。
・Left、Top:コントロールの位置をフォーム左端、上端からの距離を基準に設定します。
・Locked:コントロールを編集可能にするかどうかを設定します。Trueで編集不可、False(既定値)編集可になります。編集不可になっていてもEnabledプロパティがTrueに設定されていればイベントが発生しフォーカスを取得することが可能です。
・MousePointer、MouseIcon:コントロールの上にカーソルを置いたときに表示する形状を設定します。MouseIconはMousePointerが99-fmMousePointerCustomのときに、表示する画像をLoadPicture関数で読み込みます。
(例)
OptionButton1.MousePointer = fmMousePointerHourGlass
この例では、コントロールにカーソルを合わせるとカーソル形状が砂時計に変更されます。 |
OptionButton1.MousePointer = fmMousePointerCustom
OptionButton1.MouseIcon = LoadPicture("C:\test.ico")
この例では、コントロールにカーソルを合わせるとC:\にあるtest.icoにカーソル形状が変更されます。 |
・Name:コントロールの名前を設定、取得します。
・GroupName:OptionButtonコントロールのグループを作成します。GroupNameプロパティを使用することでFrameコントロールを使用しなくても、OptionButtonコントロールを複数のグループに分けることができます。
(例)
Private Sub UserForm_Initialize()
OptionButton1.GroupName = "OptGr1"
OptionButton2.GroupName = "OptGr1"
OptionButton3.GroupName = "OptGr2"
OptionButton4.GroupName = "OptGr2"
End Sub
この例では、OptionButton1,2とOptionButton3,4は別のグループに属します。OptionButton1,2の選択を変更してもOptionButton3,4の選択に影響を与えません。 |
・Parent:指定したコントロールを含む親オブジェクトを操作します。
(例)
OptionButton1.Parent.BackColor = vbRed
この例では、OptionButton1コントロールが配置されている親オブジェクト(UserFormやFrameなど)の背景色を赤に変更します。 |
・Picture:オブジェクトの上に表示するビットマップ画像を設定します。画像の読み込みにはLoadPicture関数を使う必要があります。
・PicturePosition:ピクチャとキャプションの位置を設定します。
(例)
OptionButton1.Picture = LoadPicture("C:\001.bmp")
この例では、OptionButton1コントロール上にC:\にある001.bmpが読み込まれます。 |
・SpecialEffect:コントロールの表示スタイルを設定します。
・TabIndex:タブオーダー内の順番を設定します。先頭のインデックスは0 です。
・TabStop:FalseにするとTab キーによるフォーカス移動の際、このオブジェクトをスキップします。
・Value:項目が選択されているかどうかを表す整数値を表します。
-1 真、項目が選択されていることを表します。
0 偽、項目が選択されていないことを表します。
・Tag:コントロールに補足的な情報(文字列)を設定、取得できます。
(例)
Private Sub OptionButton1_Change()
Debug.Print "OptionButton1:" & OptionButton1.Value
End Sub
Private Sub OptionButton2_Change()
Debug.Print "OptionButton2:" & OptionButton2.Value
End Sub
この例では、OptionButtonコントロールの選択を変更するたびに、各OptionButtonコントロールの状態を出力します。 |
・Visible:オブジェクトの表示・非表示を設定します。Trueで表示、Falseで非表示です。
■ OptionButtonコントロールオブジェクトのメソッド
・Move:コントロールを移動します。
(例)
OptionButton1.Move 100, 50, 200, 150
この例では、OptionButton1コントロールをUserFormの左端から100、上端から50ポイントの位置に移動させ、幅200、高さ150ポイントで表示します。 |
・SetFocus:コントロールにフォーカスを移します。
・ZOrder:指定されたオブジェクトのZオーダーを変更します。fmTopでその他のコントロールの最前面に、fmBottomでその他のコントロールの最背面に表示します。
■ OptionButtonコントロールオブジェクトのイベント
・Click:コントロールをマウスでクリックしたとき発生します。
・DblClick:コントロールをダブルクリックしたとき発生します。
(例)
OptionButton1.ForeColor = vbBlue
この例では、OptionButton1コントロールをクリックしたとき、Captionの文字色を青色に変更します。 |
・MouseDown、MouseUp:MouseDownはマウスボタンを押したとき、MouseUpはマウスボタンを離したときに発生します。
(例)
Private Sub OptionButton1_MouseDown(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
UserForm1.Caption = "MouseDown"
End Sub
Private Sub OptionButton1_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
UserForm1.Caption = "MouseUp"
End Sub
この例では、OptionButton1コントロールをクリックしている間はUserForm1のCaptionに"MouseDown"の表示がされ、クリックを離すと"MouseUp"の表示に変わります。 |
・MouseMove:コントロールの上にカーソルが移動したとき発生します。
・Change:コントロールの文字列を変更したときに発生します。
・AfterUpdate、BeforeUpdate:コントロールの文字列を変更した後、他のコントロールにフォーカスを移したときに発生します。
AfterUpdateは実際にデータが変更された後に発生します。
BeforeUpdateは変更を実際にデータが変更される前に発生するため引数CancelにTrueを設定すると、フォーカスは元のコントロールに残り、AfterUpdateイベントもExitイベントも発生しません。
・Enter、Exit:Enterイベントは、同一フォーム上にある別のコントロールからフォーカスを受け取る前に発生します。Exit イベントは、同一フォーム上にある別のコントロールにフォーカスを移す前に発生します。
以上で、OptionButtonコントロールオブジェクトの解説を終わります。
次回は、ToggleButtonコントロールオブジェクトの解説を行います。
|