■ UserFormsオブジェクトについて詳しく知ろう
前回に引き続き、ExcelエクセルにおけるUserFormユーザーフォームの解説です。
今回は、UserFormsオブジェクトの解説です。
UserFormsオブジェクト
アプリケーションのユーザーインターフェイスとして使用するウィンドウまたはダイアログのことです。
各コントロールを配置する、基盤になるオブジェクトです。
■ UserFormsオブジェクトのプロパティ
・ActiveControl:フォーカスを持っているコントロールを操作します。
(例)
Debug.Print UserForm1.ActiveControl.Name
この例では、フォーカスを持っているコントロールの名前を取得します。 |
・BackColor:オブジェクトの背景色を設定します。背景色はRGB関数、整数、定数で指定することが可能です。
・BoderColor:オブジェクトの境界線色を設定します。オブジェクトの境界線スタイルがfmBorderStyleSingleになっている必要があります。
・BoderStyle:オブジェクトの境界線スタイルを設定します。0 - fmBorderStyleNoneで境界線を表示しません。1 - fmBorderStyleSingleで境界線を表示します。既定値は0です。
・Caption:オブジェクトに表示する文字列を設定します。
・Cycle:フォーカスがFrameコントロールまたはMultiPageコントロール内を循環させるかどうかを設定します。fmCycleAllFormsでフォーカスは次のFrameコントロールまたはMultiPageコントロールに移ります。FmCycleCurrentFormでフォーカスはFrameコントロールまたはMultiPageコントロール内を循環します。
・Enabled:Trueで通常の表示と操作ができます、Falseでイベントに応答しなくなります。
・Height、Width:オブジェクトの高さ、幅をポイント単位で指定します。
・Left、Top:オブジェクトの位置を画面の左端、上端からの距離を基準に設定します。StartUpPositionプロパティが0-Manualでないと指定した位置に正しく表示されません。
・StartUpPosition:UserFormを最初に表示するときの位置を設定、取得します。
0-Manualで初期設定値を指定しません。
1-CenterOwnerでUserFormが属する項目の中央に、
2-CenterScreenで画面全体の中央に、
3-Windows Defaultで画面左上にそれぞれ表示されます。
・InsideHeight、InsideWidth:フォーム中のクライアント領域の高さ、幅をポイント単位で返します。値の取得のみ可能です。
・MousePointer、MouseIcon:オブジェクトの上にカーソルを置いたときに表示する形状を設定します。MouseIconはMousePointerが99-fmMousePointerCustomのときに、表示する画像をLoadPicture関数で読み込みます。
(例)
UserForm1.MousePointer = fmMousePointerHourGlass
この例では、オブジェクトにカーソルを合わせるとカーソル形状が砂時計に変更されます。 |
UserForm1.MousePointer = fmMousePointerCustom
UserForm1.MouseIcon = LoadPicture("C:\test.ico")
この例では、オブジェクトにカーソルを合わせるとC:\にあるtest.icoにカーソル形状が変更されます。 |
・Name:オブジェクトの名前を設定、取得します。
・Picture:オブジェクトの背景にに表示するビットマップ画像を設定します。画像の読み込みにはLoadPicture関数を使う必要があります。
・PictureAlignment:背景に表示するピクチャの位置を設定します。
・PictureSizeMode:オブジェクトの背景に表示するピクチャの表示方法を設定します。
0-fmPictureSizeModeClipは、フォームに表示しきれない部分は切り捨てます (既定値)。
1-FmPictureSizeModeStretchは、フォームのサイズに合わせて引き伸ばします。
3-FmPictureSizeModeZoomは、必要に応じて引き伸ばしますが、水平または垂直方向にゆがまないように引き伸ばします。
・PictureTiling:フォーム全体にピクチャを並べて表示する設定をします。Trueで背景全体に並べて表示します。Falseで並べて表示しません (既定値)。
(例)
UserForm1.Picture = LoadPicture("C:\001.bmp")
この例では、UserForm1オブジェクト上にC:\にある001.bmpが読み込まれます。 |
・ScrollBars:オブジェクトに垂直、水平スクロールバーを表示するかどうかを設定します。
0-fmScrollBarsNoneはスクロールバーを表示しません (既定値)。
1-fmScrollBarsHorizontalは水平スクロールバーを表示します。
2-fmScrollBarsVerticalは垂直スクロール バーを表示します。
3-fmScrollBarsBothは両方のスクロールバーを表示します。
・KeepScrollBarsVisible:フォームの表示領域に全てのコントロールを表示できるときは、スクロールバーは必要ありませんが、KeepScrollBarsVisibleプロパティを使うと、このような場合でもスクロールバーを表示するかどうかを指定できます。引数は、ScrollBarsプロパティと同一です。
・VerticalScrollbarSide:垂直スクロールバーを左右どちらに表示するか設定します。
0-fmVerticalScrollbarSideRightは右端にスクロールバーを表示します (既定値)。
1-fmVerticalScrollBarSideLeftは左端にスクロールバーを表示します。
・ScrollHeight、ScrollWidth:オブジェクトのスクロールバーを動かすことによって表示できる領域の高さ、幅をポイント単位で設定します。
・ScrollLeft、ScrollTop:論理的なオブジェクトの左端上端から、表示されているフォームの左端上端までの距離を、ポイント単位で指定します。
(例)
UserForm1.Width = 300
UserForm1.Height = 300
UserForm1.ScrollBars = fmScrollBarsBoth
UserForm1.ScrollWidth = 500
UserForm1.ScrollHeight = 500
この例では、UserForm1オブジェクトを300*300ポイントで表示、水平垂直方向へのスクロールバーを表示し、500*500ポイントの領域までスクロールさせます。 |
・Tag:オブジェクトに補足的な情報(文字列)を設定、取得できます。
・Visible:オブジェクトの表示・非表示を設定します。Trueで表示、Falseで非表示です。
・Zoom:オブジェクトの表示倍率を設定します。10〜400(%)の範囲で設定可能です。
■ UserFormsオブジェクトのメソッド
・Hide:オブジェクトを非表示にしますが、アンロードしません。
・Load:オブジェクトのインスタンスをメモリ上に読み込みますが、表示はしません。
・Show:オブジェクトを表示します。ロードされてなくても自動的に読み込みます。1-vbModalは、モーダルでユーザーフォームを表示します。(既定値)0-vbModelessは、モードレスでユーザーフォームを読み込みます。
・Unload:オブジェクトのインスタンスをメモリから削除します。
(例)
Load UserForm1 'この時点で、UserForm1のインスタンスがメモリに読み込まれました。
UserForm1.Show 'この時点で、UserForm1が表示されました。
UserForm1.Hide 'この時点で、UserForm1が非表示になりました。
Unload UserForm1 'この時点で、UserForm1のインスタンスがメモリから解放されました。
この例では、UserForm1をメモリに読み込み、表示したのち、非表示にし、メモリから削除しています。 |
・Move:オブジェクトを移動します。
(例)
UserForm1.Move 100, 50, 200, 150
この例では、UserForm1オブジェクトを画面の左端から100、上端から50ポイントの位置に移動させ、幅200、高さ150ポイントで表示します。 |
・Repaint:オブジェクトを描画し直すことによって、その表示内容を更新します。
・PrintForm:オブジェクトのイメージをプリンタに送ります。
(例)
Private Sub UserForm_Click()
UserForm1.PrintForm
End Sub
この例では、UserForm1をClickすると、表示しているUserForm1のイメージをビット単位でプリンタより出力します。 |
・Scroll:オブジェクトのスクロールバーを移動します。引数は、水平方向、垂直方向の順に設定します。引数に設定する定数は以下の通りです。
0-fmScrollActionNoChange |
スクロールしません。 |
1-FmScrollActionLineUp |
垂直方向の場合は上方向に、水平方向の場合は左方向に移動します。キーボードの↑、←キーに相当します |
2-FmScrollActionLineDown |
垂直方向の場合は下方向に、水平方向の場合は右方向に移動します。キーボードの↓、→キーに相当します。 |
3-FmScrollActionPageUp |
垂直方向の場合は上方向に、水平方向の場合は左方向に移動します。キーボードのPageUpキーに相当します。 |
4-fmScrollActionPageDown |
垂直方向の場合は下方向に、水平方向の場合は右方向に移動します。キーボードのPageDownキーに相当します。 |
5-fmScrollActionBegin |
垂直方向の場合は一番上まで、水平方向の場合は一番左まで移動します。 |
6-fmScrollActionEnd |
垂直方向の場合は一番下まで、水平方向の場合は一番右まで移動します。 |
(例)
Private Sub UserForm_Click()
UserForm1.Scroll fmScrollActionNoChange, fmScrollActionLineDown
End Sub
この例では、UserForm1をClickするたびに、ユーザーフォームのスクロールバーが下方向に一行ずつ移動します。(横方向には移動しません) |
■ UserFormsオブジェクトのイベント
・Activate、Deactivate:Activate イベントはオブジェクトがアクティブになったとき、Deactivateイベントは、オブジェクトがアクティブでなくなったときに発生します。
・Click:オブジェクトをマウスでクリックしたとき発生します。
・DblClick:オブジェクトをダブルクリックしたとき発生します。
(例)
UserForm1.BackColor = vbBlue
この例では、UserForm1オブジェクトをクリックしたとき、ユーザーフォームの背景色を青色に変更します。 |
・MouseDown、MouseUp:MouseDownはマウスボタンを押したとき、MouseUpはマウスボタンを離したときに発生します。
(例)
Private Sub UserForm_MouseDown(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
UserForm1.Caption = "MouseDown"
End Sub
Private Sub UserForm_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
UserForm1.Caption = "MouseUp"
End Sub
この例では、UserForm1コントロールをクリックしている間はタイトルバーに"MouseDown"の表示がされ、クリックを離すと"MouseUp"の表示に変わります。 |
・MouseMove:オブジェクトの上にカーソルが移動したとき発生します。
・Scroll:スクロールバーを動かすと発生します。
・Zoom:Zoomプロパティの値を変更すると発生します。
・Terminate:オブジェクトのインスタンスへのすべての参照がメモリから削除されたとき、または最後のオブジェクトへの参照が適用範囲外に出たときに発生します。Terminateイベントは、オブジェクトがアンロードされたあとに発生します。ユーザーフォームがメモリから削除されても、アプリケーションが異常終了したときは、Terminateイベントは起動しません。
以上で、UserFormsオブジェクトの解説を終わります。
次回は、Labelコントロールオブジェクトの解説を行います。
|