ユーザーフォームにスピンボタンを追加する方法と詳細設定の方法をご説明します。
スピンボタンは単体で使用せずにテキストボックスなどのコントロールと併せて使用します。
「◀︎▶︎」をクリックされた場合に表示されている文字列や数値、日付を変更するプログラムを実行するときに使用します。
追加するにはツールボックスから追加する方法と、VBAから追加する方法がありますので、順にご説明します。
その他のコントロールの操作については下記記事をご覧ください。
- ユーザーフォームにコントロールを追加する方法
- ラベルを追加と詳細設定する方法
- テキストボックスを追加と詳細設定する方法
- コンボボックスの追加とリスト作成、詳細設定の方法
- チェックボックスを追加と詳細設定する方法
- リストボックス追加とリスト作成、詳細設定の方法
1.ツールボックスでスピンボタンを追加する
まずは、ツールボックスでスピンボタンを追加する方法です。
ユーザーフォームの作成がまだの方は、VBE→挿入タブ→ユーザーフォームを選択してUserFormを作成してください。
ツールボックスが表示されていない方は、メニューの実行ボタンや停止ボタンの並びにあるツールボックスボタンをクリックしてください。
もしくは表示タブのツールボックスを選択する事で表示出来ます。
スピンボタンを選択します。
選択したら、ユーザーフォーム上の設置したい位置でユーザーフォームをクリックします。
すると下記図のように、スピンボタンが追加されます。
2.プロパティウィンドウで詳細設定する
スピンボタンを大まかな位置に設置したら、次はプロパティウィンドウで詳細設定をします。
詳細設定と言ってもプロパティの種類が多すぎますので、一覧で簡単に説明します。
プロパティ一覧
定数の説明があるプロパティは赤字になっています。
プロパティ名 | 説明 |
オブジェクト名 | コントロールの名前を指定します。 |
BackColor | スピンボタンの背景色をシステムまたは、カラーパレットで指定します。 |
ControlSource | スピンボタンにリンクさせるセルを指定します。 |
ControlTipText | マウスポインターをコントロール上に置いたとき、表示する文字列を指定します。 |
Delay | スピンボタンを押し続けた際のイベントの遅延時間をミリ単位で指定します。 |
Enabled | 通常の表示と操作が出来るか指定します。 |
ForeColor | スピンボタンに設定された文字列の色を指定します。 |
Height | スピンボタンの高さを指定します。 |
HelpConTextID | 指定したオブジェクトと関連付けるヘルプのコンテキストIDを指定します。 |
Left | スピンボタンの位置をフォームの左端を0として、ポイント単位で指定します。 |
Max | スピンボタンの最大値を指定します。 |
Min | スピンボタンの最小値を指定します。 |
MouseIcon | マウスポインターがスピンボタン上にあるときの、アイコンファイルを指定します。 |
MousePointer | マウスポインターがスピンボタンに移動したとき表示されるポインターの種類を指定します。 |
Orientation | スピンボタンの配置方向を指定します。 |
SmallChange | スピンボタンの1回クリックした場合の値の加減値を指定します。 |
TabIndex | スピンボタンにフォーカスをあてる順番を指定します。 |
TabStop | TabIndexの有効/無効を指定します。 |
Top | スピンボタンの位置をフォームの上端を0としてポイント単位で指定します。 |
Value | スピンボタンの値を指定します。 |
Visible | スピンボタンの表示/非表示を切り替えます。 |
Width | スピンボタンの幅をポイント単位で指定します。 |
MousePointerの定数一覧
「fmMousePointerDefault」が既定値となります。
定数名 | 値 | 内容 |
fmMousePointerDefault | 0 | 標準ポインター |
fmMousePointerArrow | 1 | 矢印 |
fmMousePointerCross | 2 | 十字ポインター |
fmMousePointerIBeam | 3 | Iビーム |
fmMousePointerSizeNESW | 6 | 右上と左下を指し示す両端矢印 |
fmMousePointerSizeNS | 7 | 上と下を指し示す両端矢印 |
fmMousePointerSizeNWSE | 8 | 左上と右下を指し示す両端矢印 |
fmMousePointerSizeWE | 9 | 左と右を指し示す両端矢印 |
fmMousePointerUpArrow | 10 | 上向き矢印 |
fmMousePointerHourglass | 11 | 砂時計 |
fmMousePointerNoDrop | 12 | ドラッグされているオブジェクトに重なった不可シンボル無効なターゲット。 |
fmMousePointerAppStarting | 13 | 矢印と砂時計 |
fmMousePointerHelp | 14 | 矢印と疑問符 |
fmMousePointerSizeAll | 15 | サイズ変更カーソル (上下左右を指し示す矢印) |
fmMousePointerCustom | 99 | MouseIcon プロパティで指定されたアイコンを使用します。 |
Orientationの定数一覧
「fmOrientationAuto」が既定値となります。
定数名 | 値 | 説明 |
fmOrientationAuto | -1 | コントロールの大きさによって自動的に方向を指定します。 |
fmOrientationVertical | 0 | 垂直方向に指定します。 |
fmOrientationHorizontal | 1 | 水平方向に指定します。 |
3.VBAでスピンボタンを追加する方法
VBAでコントロールの追加は次のように記述します。
Set Object = UserForm1.Controls.Add("Forms.SpinButton.1","コントロールの名前","オブジェクトの表示")
コントロールオブジェクトに「Addメソッド」で追加して操作します。
スピンボタンのコントロールIDは「Forms.SpinButton.1」です。
コントロールの種類とコントロールの名前、オブジェクトの表示をTrue、Falseで指定します。
「オブジェクトの表示」は省略可能で、省略した場合は既定値がTrueになります。
4.サンプルコード
スピンボタンを追加するサンプルコード
何も指定しないと左上にデフォルト設定の状態で追加されます。
また、スピンボタンを追加する際にオブジェクト名に、スピンボタンと判定できるような名前に指定する事をおすすめします。
追加後にVBAでコントロールを特定する際に簡単になります。
Sub Sample1()
Dim MyCtrl As Object
With UserForm1
Set MyCtrl = .Controls.Add("Forms.SpinButton.1", "MySpin", True)
.Show vbModeless
End With
End Sub
スピンボタンがユーザーフォームの左上に追加されます。
スピンボタンの詳細設定するサンプルコード
スピンボタンを追加して、位置やサイズ、設置方向の設定等の詳細設定をするコードになります。
垂直方向
垂直方向に指定して設置するには「Orientation = fmOrientationVertical」と指定します。
Sub Sample2()
Dim MyCtrl As Object
With UserForm1
Set MyCtrl = .Controls.Add("Forms.SpinButton.1", "MySpin", True)
With MyCtrl
.Top = 24 'Top位置
.Left = 18 'Left位置
.Height = 40 '高さ
.Width = 20 '幅
.Orientation = fmOrientationVertical '設置方向
.TabIndex = 1
End With
.Show vbModeless
End With
End Sub
水平方向
水平方向に設置するには「Orientation = fmOrientationHorizontal」と指定します。
Sub Sample3()
Dim MyCtrl As Object
With UserForm1
Set MyCtrl = .Controls.Add("Forms.SpinButton.1", "MySpin", True)
With MyCtrl
.Top = 24 'Top位置
.Left = 18 'Left位置
.Height = 18 '高さ
.Width = 25 '幅
.Orientation = fmOrientationHorizontal '設置方向
.TabIndex = 1
End With
.Show vbModeless
End With
End Sub