構文
構文は以下の通りです。
スクロールバー名.LargeChange = 値
解説
スクロールバー内のスクロールボックス以外の部分をクリックした時のスクロール幅を設定するには、LargeChangeプロパティを使用します。値にはスクロール幅を設定します。これにより、スクロールバーが1回の移動でどれだけ移動するかが決まります。
使い方
具体的な使い方を紹介します。
Private Sub UserForm_Initialize()
' フォーム初期化時にスクロール幅を設定
ScrollBar1.LargeChange = 10
End Sub
' フォーム初期化時にスクロール幅を設定
ScrollBar1.LargeChange = 10
End Sub
例えば、スクロールバーが1回の移動で10行分の変更を行うように設定したい場合、VBAコードは以下の通りです。このコードは、フォームが初期化される際にスクロールバーのLargeChangeを10に設定します。
プログラミング例
以下に、プログラミング例を幾つか紹介します。
(例1)フォームの読み込み時にスクロールボックスのスクロール幅を設定する方法
Private Sub UserForm_Initialize()
' フォームが初期化されるときに実行されるコード
Me.ScrollBar1.LargeChange = 10 ' スクロール幅を設定(例: 10)
End Sub
' フォームが初期化されるときに実行されるコード
Me.ScrollBar1.LargeChange = 10 ' スクロール幅を設定(例: 10)
End Sub
(例2)ボタンクリック時にスクロールボックスのスクロール幅を変更する方法
Private Sub CommandButton1_Click()
' ボタンがクリックされたときに実行されるコード
Me.ScrollBar1.LargeChange = 5 ' スクロール幅を設定(例: 5)
End Sub
' ボタンがクリックされたときに実行されるコード
Me.ScrollBar1.LargeChange = 5 ' スクロール幅を設定(例: 5)
End Sub
(例3)テキストボックスに入力された値を使ってスクロール幅を設定する方法
Private Sub TextBox1_Change()
' テキストボックスの値が変更されたときに実行されるコード
Dim newLargeChange As Integer
' エラー処理: 数値以外が入力された場合の対応
On Error Resume Next
newLargeChange = CInt(Me.TextBox1.Value)
On Error GoTo 0
If newLargeChange > 0 Then
Me.ScrollBar1.LargeChange = newLargeChange
Else
MsgBox "正の整数を入力してください。", vbExclamation
End If
End Sub
' テキストボックスの値が変更されたときに実行されるコード
Dim newLargeChange As Integer
' エラー処理: 数値以外が入力された場合の対応
On Error Resume Next
newLargeChange = CInt(Me.TextBox1.Value)
On Error GoTo 0
If newLargeChange > 0 Then
Me.ScrollBar1.LargeChange = newLargeChange
Else
MsgBox "正の整数を入力してください。", vbExclamation
End If
End Sub
まとめ
スクロールバー内のスクロールボックス以外の部分をクリックした時のスクロール幅を設定するには、LargeChangeプロパティを使用します。設定したスクロール幅に基づいて、ユーザーがスクロールバーを操作すると、指定された大きさでのスクロールが行われます。是非活用してください。