教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでフォーム内のスピンボタンをクリックした時に指定した範囲内データのみを表示する方法

構文

構文は以下の通りです。

Private Sub SpinButton1_Change()
    If スピンボタン名.Value >= 最小値 And スピンボタン名.Value <= 最大値 Then
        ラベル名.Caption = SpinButton1.Value
    Else
        MsgBox "指定した範囲外です"
    End If
End Sub

解説

スピンボタン名_Changeは、スピンボタンの値が変わるたびに自動的に呼び出されるイベントとなります。フォームに配置されたスピンボタンが操作されると、このコードが実行されます。スピンボタン名.Valueは、現在のスピンボタンの値を取得します。この値が範囲内にあるかどうかを確認します。最小値と最大値は、表示する範囲の下限値と上限値を設定します。ラベル名.Captionは、ラベルにスピンボタンの値を表示します。
MsgBox:範囲外の場合、警告メッセージを表示します。

プログラミング例

具体的なプログラミング例を紹介します。

(例1)範囲が1から10の場合

Private Sub SpinButton1_Change()
    Dim 最小値 As Integer
    Dim 最大値 As Integer
    最小値 = 1
    最大値 = 10
    If SpinButton1.Value >= 最小値 And SpinButton1.Value <= 最大値 Then
        ラベル1.Caption = "現在の値: " & SpinButton1.Value
    Else
        MsgBox "指定した範囲外です: " & 最小値 & " から " & 最大値 の間で入力してください"
    End If
End Sub

上記のプログラムは、スピンボタンの値が1から10の範囲内であれば、その値をラベルに表示し、範囲外であればメッセージボックスで警告します。

(例2)範囲が5から20の場合

Private Sub SpinButton1_Change()
    Dim 最小値 As Integer
    Dim 最大値 As Integer
    最小値 = 5
    最大値 = 20
    If SpinButton1.Value >= 最小値 And SpinButton1.Value <= 最大値 Then
        ラベル1.Caption = "現在の値: " & SpinButton1.Value
    Else
        MsgBox "指定した範囲外です: " & 最小値 & " から " & 最大値 の間で入力してください"
    End If
End Sub

上記のプログラムでは、範囲が5から20に設定されています。範囲外の数値が入力された場合に同様の警告が表示されます。

まとめ

スピンボタンのValueを使って、指定した範囲内でのみデータを表示することができます。範囲外の数値を入力すると警告を表示することで、ユーザーに誤った入力を防ぐ仕組みを提供します。スピンボタンの範囲はMinとMaxプロパティで設定できるため、柔軟に範囲を調整できます。