はじめに
Excelのシート上で、ユーザーに数値を簡単に入力させたい場合、「フォームコントロール」の「スピンボタン」が非常に便利です。マウスで上下の矢印をクリックするだけで、数値を増減させることができるため、キーボードでの入力ミスを防ぎ、直感的な操作を提供します。
VBAでこのスピンボタンを操作するためには、その基本的なプロパティを理解することが不可欠です。この記事では、シート上のスピンボタンを扱う上で最も重要となる、以下の5つのプロパティについて、それぞれの役割と使い方をサンプルコード付きで分かりやすく解説します。
- Max: 最大値
- Min: 最小値
- SmallChange: 変化の増分
- LinkedCell: リンクするセル
- Value: 現在値
スピンボタンのプロパティとサンプルコード
以下のサンプルコードは、ItemCountSpinner
という名前のスピンボタンの各種プロパティを設定するものです。
完成コード
' スピンボタンのプロパティを設定する
Sub ConfigureSpinner()
Dim targetSpinner As Spinner
' "ItemCountSpinner" という名前のスピンボタンを取得
Set targetSpinner = ActiveSheet.Spinners("ItemCountSpinner")
With targetSpinner
' .Min プロパティ: 設定可能な最小値を設定
.Min = 0
' .Max プロパティ: 設定可能な最大値を設定
.Max = 100
' .SmallChange プロパティ: 矢印を1回クリックしたときの変化量を設定
.SmallChange = 5
' .Value プロパティ: 現在の値を設定
.Value = 20
' .LinkedCell プロパティ: 値を表示・連動させるセルを設定
.LinkedCell = "D2"
End With
' 現在値を確認
MsgBox "スピンボタンの現在値: " & targetSpinner.Value, vbInformation
End Sub
1. Min
/ Max
プロパティ
スピンボタンで設定できる数値の最小値と最大値を整数で指定します。この範囲外の値は設定できません。
2. SmallChange
プロパティ
ユーザーがスピンボタンの上下の矢印を1回クリックしたときに、値がどれだけ増減するかの変化量を整数で指定します。
3. LinkedCell
プロパティ
スピンボタンの現在の値と連動させるセルのアドレスを、"D2"
のように文字列で指定します。指定したセルにはスピンボタンの現在の値が常に表示され、ユーザーがセルに直接数値を入力しても、スピンボタンの値が(Min/Maxの範囲内であれば)更新されます。
4. Value
プロパティ
スピンボタンの現在の値を取得、または設定します。.LinkedCell
が設定されている場合、このプロパティの値はリンクされたセルの値と常に一致します。
まとめ
今回は、シート上のスピンボタンをVBAで操作するための5つの基本プロパティを解説しました。これらのプロパティを組み合わせることで、ユーザーが入力できる数値の範囲を制限したり、変化量を調整したりと、より安全で使いやすい入力インターフェースを構築できます。
.Min
と.Max
で入力値の範囲を制限する。.SmallChange
で操作の刻みを決める。.LinkedCell
でシート上のセルと連動させる。.Value
で現在の値を取得・設定する。
手動での数値入力をスピンボタンに置き換えるだけで、シートの使い勝手は大きく向上します。ぜひこのテクニックをご活用ください。