スピンボタンは年月日や増減する値などを入力する際に使用します。スピンボタンは通常、スピンボタン単体ではなくテキストボックスと併用して作成します。例としてテキストボックスとスピンボタンをフォームに配置し、当日年月日を初期値としてセットするコードを記述します。
ツールボックスよりテキストボックスのアイコンをクリックします。
テキストボックスを配置したい場所でドラック&ドロップします。
フォームに配置できたらテキストボックスを右クリックしプロパティを選択します。
プロパティ項目のオブジェクト名をクリックし、デフォルトでオブジェクト名(TextBox1)が入力されているので変更します。(例ではtxtDateに変更)(オブジェクト名は変更しなくても良いのですが、後々テキストボックスが増えた場合区別がつきにくくなるので変更することをお勧めします。)
次にツールボックスよりスピンボタンのアイコンをクリックします。
スピンボタンを配置したい場所でドラック&ドロップします。
フォームに配置できたらスピンボタンを右クリックしプロパティを選択します。
プロパティ項目のオブジェクト名をクリックし、デフォルトでオブジェクト名(SpinButton1)が入力されているので変更します。(例ではspnDateに変更)(オブジェクト名は変更しなくても良いのですが、後々スピンボタンが増えた場合区別がつきにくくなるので変更することをお勧めします。)
フォームを右クリックしコードの表示を選択します。
右のドロップダウンリストより、イベントプロシージャ「Initialize」選択します。
イベントプロシージャを選択すると自動的にコードが記入されます。
Private Sub UserForm_Initialize()~End Sub の間に以下のコードを記述します。
Private Sub UserForm_Initialize()
UserForm1.txtDate.Value = Date
End Sub
スピンボタンを右クリックしコードの表示を選択します。
右のドロップダウンリストより、イベントプロシージャ「SpinUp」選択します。
イベントプロシージャを選択すると自動的にコードが記入されます。
Private Sub spnDate_SpinUp()~End Sub の間に以下のコードを記述します。
Private Sub spnDate_SpinUp()
Dim dtDate As Date
dtDate = UserForm1.txtDate.Value
UserForm1.txtDate.Value = DateAdd("d", 1, dtDate)
End Sub
右のドロップダウンリストより、イベントプロシージャ「SpinDown」選択します。
イベントプロシージャを選択すると自動的にコードが記入されます。
Private Sub spnDate_SpinUp()~End Sub の間に以下のコードを記述します。
Private Sub spnDate_SpinDown()
Dim dtDate As Date
dtDate = UserForm1.txtDate.Value
UserForm1.txtDate.Value = DateAdd("d", -1, dtDate)
End Sub
実行→Sub/ユーザーフォームの実行をクリックするか〔F5〕ボタンを押します。
フォームがロードされテキストボックスに本日日付が初期値としてセットされます。スピンボタンをクリックすると日付が変わります。