Lesson8(スクロールバー)
今回は前回のRGBの値をスクロールバーで自由に変えれる様にしてみましょう。それでは、いつもの様にユーザーフォームを挿入して下さい。そして次の様にコントロールを配置して下さい。
ラベル4 ラベル1 テキストボックス1 スクロールバー1
ラベル2 テキストボックス2 スクロールバー2
テキストボックス4 ラベル3 テキストボックス3 スクロールバー3
キャプションは、ラベル4は(合成色)ラベル1は(R成分)ラベル2は(G成分)ラベル3は(B成分)としましょう。コントロールの大きさは、ユーザフォームを横400以上に取って、3つのスクロールバーの長さを
高さ12,幅256(何れもプロパティHeight1とWidthの値を直接変更)にして下さい。テキストボックス1~3は三桁の数字が入る程度に、テキストボックス4は正方形にしましょう。

このユーザーフォームを見ると、やりたいことがだいたいわかりますよね。R、G、B成分それぞれのスクロールバーの位置によって決定された数値がテキストボックス1~3に表示されて、実際の合成色がテキストボックス4に表示します。コードはこの様に書いて下さい。「'」以降はコメント文ですので、プログラムとは関係がありません。自分が後でプログラムを見たときに、何をしようとして書いたのかをわかりやすくするために書きます。
Private Sub ScrollBar1_Change()
TextBox4.BackColor = RGB(ScrollBar1.Value, ScrollBar2.Value, ScrollBar3.Value)
'RGB関数のRGBにスクロールバーの値を代入
TextBox1.Text = ScrollBar1.Value 'テキストボックス1にスクロールバーの値を表示
End SubPrivate Sub ScrollBar2_Change()
TextBox4.BackColor = RGB(ScrollBar1.Value, ScrollBar2.Value, ScrollBar3.Value)
TextBox2.Text = ScrollBar2.Value 'テキストボックス2にスクロールバーの値を表示
End SubPrivate Sub ScrollBar3_Change()
TextBox4.BackColor = RGB(ScrollBar1.Value, ScrollBar2.Value, ScrollBar3.Value)
TextBox3.Text = ScrollBar3.Value 'テキストボックス3にスクロールバーの値を表示
End SubPrivate Sub UserForm_Initialize()
ScrollBar1.Min = 0 'スクロールバー1の最小値を設定する。
ScrollBar2.Min = 0 'スクロールバー2の最小値を設定する。
ScrollBar3.Min = 0 'スクロールバー3の最小値を設定する。
ScrollBar1.Max = 255 'スクロールバー1の最大値を設定する。
ScrollBar2.Max = 255 'スクロールバー2の最大値を設定する。
ScrollBar3.Max = 255 'スクロールバー3の最大値を設定する。
ScrollBar1.SmallChange = 1 'スクロールバー1の小移動量を設定する。
ScrollBar2.SmallChange = 1 'スクロールバー1の小移動量を設定する。
ScrollBar3.SmallChange = 1 'スクロールバー1の小移動量を設定する。
ScrollBar1.LargeChange = 10 'スクロールバー1の小移動量を設定する。
ScrollBar2.LargeChange = 10 'スクロールバー1の小移動量を設定する。
ScrollBar3.LargeChange = 10 'スクロールバー1の小移動量を設定する。
End Subさらにテキストボックスに入力した値でもRGB成分が決めれるように改造したコードを次に示します。
こちらにはコメントを書いていませんが、みなさんはコメントを書く様に努めて下さい。また全体が表示
出来ないので2行に分けて書いているところは1行で書いて下さい。
(VBE上では半角スペースに続いて半角アンダスコア_を書いて改行すると、ステートメント行が続いていることを示します)
![]()
さあ、コードが書けたら実行してみましょう。
![]()
みなさんのプログラムもちゃんと動きましたか。今回のプログラムでRGBの値と色合いとの関係がよくわかる様になりましたね。
(ちょっとお詫び)今回はこのページの表示時間を速くしようと思って、Jpg画像の圧縮率を上げて画像 の品質を落としましたので、ちょっと画像が見にくいかも知れません(^^; 次回からは標準圧縮率に戻します。
![]()
ご意見・ご感想は