教えて!ExcelVBA!

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

ExcelVBAでフォーム内のスクロールボックスのスクロール幅を設定する方法

構文

構文は以下の通りです。

スクロールバー名.LargeChange = 数値
スクロールバー名.SmallChange = 数値

解説

LargeChangeは、スクロールボックスをクリックしたとき、またはページ単位で移動したときのスクロールの幅を設定します。大きな範囲をスクロールする場合に使用します。SmallChangeは、矢印ボタンをクリックしたときのスクロール幅を設定します。細かい調整を行う場合に便利です。

プログラミング例

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

Private Sub UserForm_Initialize()
    ' スクロールバーの設定
    Dim スクロールバー1 As MSForms.ScrollBar
    Set スクロールバー1 = Me.ScrollBar1
    ' スクロール幅の設定
    スクロールバー1.LargeChange = 10
    スクロールバー1.SmallChange = 1
    ' 設定の確認
    MsgBox "LargeChangeの値: " & スクロールバー1.LargeChange & vbCrLf & _
           "SmallChangeの値: " & スクロールバー1.SmallChange
End Sub

上記のプログラムは、Set スクロールバー1 = Me.ScrollBar1で、フォーム内のスクロールバーを変数にセットしています。LargeChangeはページ単位の移動幅として、SmallChangeは矢印ボタンによる細かい移動幅を設定しています。

まとめ

LargeChangeとSmallChangeを使うことで、スクロールバーの動作を調整することができます。LargeChangeで大きな移動、SmallChangeで細かい移動を設定し、ユーザーに合わせたスクロールを提供します。