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