Excel VBA スクロールバーで値を取得する

スポンサーリンク
スポンサーリンク

スクロールバーで値を取得する方法

スクロールバーはスクロール操作によって
特定の範囲内で値を増減させてその値を取得することができます。
スクロールボックスのドラッグ操作で値を大幅に
増減できることから、比較的広い範囲の値を増減させたいときに
有効なコントロールといえます。
なお、比較的狭い範囲で値を増減させて取得する場合は
スピンボタンが便利です。

スクロールバーコントロールの各部の名称


Min【ミニ】プロパティ

Max【マックス】プロパティ

スクロールバーの最小値と最大値を設定するには
Min【ミニ】プロパティとMax【マックス】プロパティを使用します。
これらの値を設定することで
特定の範囲内で値が増減されるようにスクロールバーを設定できます。

Min【ミニ】、Max【マックス】プロパティの書式

オブジェクト.Min = 設定値
オブジェクト.Max = 設定値


設定値の説明

  • オブジェクト(必須)
    対象となるスクロールバーのオブジェクト名を設定します。
  • 設定値(必須)
    Minプロパティにはスクロールバーの最小値を設定
    Maxプロパティにはスクロールバーの最大値を設定します。

    いずれも長整数型(Long)の値を使用します。
    長整数型の範囲である-2,147,483,648~2,147,483,648を
    超えた値を設定するとエラーになります。

※コードは通常、ユーザーフォームが読み込まれる
直前に実行されるユーザーフォームの
Initialize【イニシャライズ】イベントプロシージャー内に記述します。


Value【バリュー】プロパティ

スクロールバーの現在の位置の値を取得または、設定するには
スクロールバーコントロールオブジェクトの
Value【バリュー】プロパティを使用します。

Value【バリュー】プロパティの書式

【取得】
オブジェクト.Value
【設定】
オブジェクト.Value = 設定値


設定値の説明

  • オブジェクト(必須)
    対象となるスクロールバーコントロールオブジェクトの
    オブジェクト名を設定します。
  • 設定値(必須)
    スクロールボックスの表示位置を設定する場合に
    Min、Maxプロパティで設定した範囲の値を設定します。

※スクロールバーには、現在のスクロールバーの位置を表す
数値を表示する機能がないので、現在のスクロールバーの位置を
表すデータをValueプロパティで取得して
ラベルコントロールなどを使用して表示させる必要があります。
コードを記述する場所は、スクロールバーのValueプロパティが
変更されたときに発生する、スクロールバーコントロールの
Change【チェンジ】イベントプロシージャーに記述します。


スクロールバーを使用して色を設定するRGB関数の値を取得する例

実行後イメージ

ユーザフォームに設置する各コントロール


スクロールバーコントロールの初期設定コード例

Private Sub UserForm_Initialize()
Label1.Caption = ""
Label2.Caption = ""
Label3.Caption = ""
ScrollBar1.Min = 0
ScrollBar1.Max = 255
ScrollBar2.Min = 0
ScrollBar2.Max = 255
ScrollBar3.Min = 0
ScrollBar3.Max = 255
End Sub

コードの解説

1行目
【Private Sub UserForm_Initialize()】

ユーザーフォームが表示される直前に実行される
Initialize【イニシャライズ】イベントプロシージャーに
コードを記述します。


2行目~4行目
【Label1.Caption = “”
Label2.Caption = “”
Label3.Caption = “”】

ラベルコントロールのCaption【キャプション】プロパティに空文字を設定します。


5行目~10行目
【ScrollBar1.Min = 0
ScrollBar1.Max = 255
ScrollBar2.Min = 0
ScrollBar2.Max = 255
ScrollBar3.Min = 0
ScrollBar3.Max = 255】

スクロールバーオブジェクトの
Min、Maxプロパティを使用して各スクロールバーに
最小値と最大値を設定します。
最大値はRGB値の最大値の255を設定します。


スクロールバーの値をラベルコントロールに表示するコード例

Private Sub ScrollBar1_Change()
Label1.Caption = "R値:" & ScrollBar1.Value
End Sub
Private Sub ScrollBar2_Change()
Label2.Caption = "G値:" & ScrollBar2.Value
End Sub
Private Sub ScrollBar3_Change()
Label3.Caption = "B値:" & ScrollBar3.Value
End Sub

コードの解説

各スクロールバーコントロールのValue【バリュー】プロパティが
変更されたときに発生する
Change【チェンジ】イベントプロシージャーに
各スクロールバーの値をValueプロパティで取得して
各ラベルオブジェクトのCaption【キャプション】に代入します。


各スクロールバーの値をRGB値としてテキストボックスにその色を表示するコード例

Private Sub CommandButton1_Click()
Dim R As Integer
Dim G As Integer
Dim B As Integer
R = ScrollBar1.Value
G = ScrollBar2.Value
B = ScrollBar3.Value
TextBox1.BackColor = RGB(R, G, B)
End Sub

コードの解説

1行目
【Private Sub CommandButton1_Click()】

コマンドボタンがクリックされたときに発生する
コマンドボタンコントロールオブジェクトの
Clich【クリック】イベントプロシージャーにコードを記述します。


2行目~4行目
【Dim R As Integer
Dim G As Integer
Dim B As Integer】

RGB値として使用する値を格納する変数を
整数型(Integer)で宣言します。


5行目~7行目
【R = ScrollBar1.Value
G = ScrollBar2.Value
B = ScrollBar3.Value】

スクロールバーコントロールオブジェクトの
Value【バリュー】プロパティで
各スクロールバーの値を取得し、各変数に代入します。


8行目
【TextBox1.BackColor = RGB(R, G, B)】

テキストボックスコントロールオブジェクトの
バックカラーを表す、BackColor【バックカラー】プロパティに
RGB関数で値に各変数をあてて
テキストボックスコントロールオブジェクトのバックカラーを変更します。


以上で
スクロールバーで値を取得する方法についての解説を終了します。
ありがとうございました。
スクロールバーコントロールオブジェクトのその他のプロパティについては
スクロールバーのプロパティ」をご覧ください。
スクロールバーコントロールオブジェクトのその他のイベントについては
スクロールバーのイベント」をご覧ください。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク