Excel VBA ユーザーフォームにスピンボタンの追加と詳細設定する方法

コントロール作成/操作

ユーザーフォームにスピンボタンを追加する方法と詳細設定の方法をご説明します。

スピンボタンは単体で使用せずにテキストボックスなどのコントロールと併せて使用します。

「◀︎▶︎」をクリックされた場合に表示されている文字列や数値、日付を変更するプログラムを実行するときに使用します。

追加するにはツールボックスから追加する方法と、VBAから追加する方法がありますので、順にご説明します。

その他のコントロールの操作については下記記事をご覧ください。

1.ツールボックスでスピンボタンを追加する

まずは、ツールボックスでスピンボタンを追加する方法です。

ユーザーフォームの作成がまだの方は、VBE→挿入タブ→ユーザーフォームを選択してUserFormを作成してください。

ツールボックスが表示されていない方は、メニューの実行ボタンや停止ボタンの並びにあるツールボックスボタンをクリックしてください。

もしくは表示タブのツールボックスを選択する事で表示出来ます。

スピンボタンを選択します。

選択したら、ユーザーフォーム上の設置したい位置でユーザーフォームをクリックします。

すると下記図のように、スピンボタンが追加されます。

2.プロパティウィンドウで詳細設定する

スピンボタンを大まかな位置に設置したら、次はプロパティウィンドウで詳細設定をします。

詳細設定と言ってもプロパティの種類が多すぎますので、一覧で簡単に説明します。

プロパティ一覧

定数の説明があるプロパティは赤字になっています。

プロパティ名説明
オブジェクト名コントロールの名前を指定します。
BackColorスピンボタンの背景色をシステムまたは、カラーパレットで指定します。
ControlSourceスピンボタンにリンクさせるセルを指定します。
ControlTipTextマウスポインターをコントロール上に置いたとき、表示する文字列を指定します。
Delayスピンボタンを押し続けた際のイベントの遅延時間をミリ単位で指定します。
Enabled通常の表示と操作が出来るか指定します。
ForeColorスピンボタンに設定された文字列の色を指定します。
Heightスピンボタンの高さを指定します。
HelpConTextID指定したオブジェクトと関連付けるヘルプのコンテキストIDを指定します。
Leftスピンボタンの位置をフォームの左端を0として、ポイント単位で指定します。
Maxスピンボタンの最大値を指定します。
Minスピンボタンの最小値を指定します。
MouseIconマウスポインターがスピンボタン上にあるときの、アイコンファイルを指定します。
MousePointerマウスポインターがスピンボタンに移動したとき表示されるポインターの種類を指定します。
Orientationスピンボタンの配置方向を指定します。
SmallChangeスピンボタンの1回クリックした場合の値の加減値を指定します。
TabIndexスピンボタンにフォーカスをあてる順番を指定します。
TabStopTabIndexの有効/無効を指定します。
Topスピンボタンの位置をフォームの上端を0としてポイント単位で指定します。
Valueスピンボタンの値を指定します。
Visibleスピンボタンの表示/非表示を切り替えます。
Widthスピンボタンの幅をポイント単位で指定します。
MousePointerの定数一覧

fmMousePointerDefault」が既定値となります。

定数名内容
fmMousePointerDefault0標準ポインター
fmMousePointerArrow1矢印
fmMousePointerCross2十字ポインター
fmMousePointerIBeam3Iビーム
fmMousePointerSizeNESW6右上と左下を指し示す両端矢印
fmMousePointerSizeNS7上と下を指し示す両端矢印
fmMousePointerSizeNWSE8左上と右下を指し示す両端矢印
fmMousePointerSizeWE9左と右を指し示す両端矢印
fmMousePointerUpArrow10上向き矢印
fmMousePointerHourglass11砂時計
fmMousePointerNoDrop12ドラッグされているオブジェクトに重なった不可シンボル無効なターゲット。
fmMousePointerAppStarting13矢印と砂時計
fmMousePointerHelp14矢印と疑問符
fmMousePointerSizeAll15サイズ変更カーソル (上下左右を指し示す矢印)
fmMousePointerCustom99MouseIcon プロパティで指定されたアイコンを使用します。
Orientationの定数一覧

fmOrientationAuto」が既定値となります。

定数名説明
fmOrientationAuto-1コントロールの大きさによって自動的に方向を指定します。
fmOrientationVertical0垂直方向に指定します。
fmOrientationHorizontal1水平方向に指定します。

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
タイトルとURLをコピーしました