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